Nwlapcug.com


Come copiare e incollare a righe disponibili in Macro



Microsoft Excel è particolarmente affezionato a intervalli contigui. Quando un intervallo è interrotto da celle vuote, Excel aggiunge un livello di difficoltà per le attività di foglio di calcolo. A volte la soluzione è quello di riempire gli spazi vuoti, le righe che contengono dati di copiare e incollare i valori in righe vuote di sotto. Se stai lavorando con un grande foglio di calcolo, probabilmente non volete farlo a mano. Utilizzare un Visual Basic, Applications Edition (VBA) macro per trovare le righe disponibili e incollare i dati automaticamente.

Istruzioni

1

Aprire "Microsoft Excel," versione 2002 o versione successiva.

2

Creare un foglio di lavoro per testare la macro. Includere le righe con i dati e le righe che sono vuote. Immettere quanto segue:

Cella B1: test1

Cella C1: test1

Cella A4: test2

Cella B4: test2

Cella C4: test2

Cella D4: test2

Cella A5: test3

Cella B5: test3

Cella C5: test3

Cella A9: test4

3

Premere "Alt + F11" per aprire l'Editor di Visual Basic.

4

Inserire un modulo vuoto per contenere il codice VBA. Dal menu, selezionare "Inserisci", poi "Modulo".

5

Avviare una nuova subroutine denominata "PasteAvail." Digitare quanto segue nel modulo di codice:

Sub PasteAvail()

Premere "Enter". Excel verrà aggiunta un'istruzione "End Sub".

6

Dichiarare le variabili che si utilizzerà. Digitare quanto segue tra le istruzioni "Sub" e "End Sub":

Dim MaxRows As Long, LastRow come lungo, io come Long

Dim MaxCols As Integer, FirstRow As Integer

7

Assegnare le variabili per contenere il numero totale di righe e colonne del foglio di lavoro. Il valore effettivo di queste variabili dipenderà quale versione di Excel in uso. Digitare quanto segue:

MaxRows = Rows. Count

MaxCols = Columns

8

Assegnare le variabili per tenere i numeri di riga per la prima e l'ultima riga che contengono dati. Questo evita un lungo ciclo attraverso ogni riga nel foglio di lavoro. Digitare quanto segue:

FirstRow = 1

LastRow = cellule (MaxRows, 1). End(xlUp). Riga

9

Aggiungere il codice a guardare ogni riga, dal primo all'ultimo, decidere se la riga è vuota e copiare o incollare come necessario. Digitare quanto segue:

For i = FirstRow a LastRow

Rows(i). Selezionare

Se WorksheetFunction.CountBlank(Rows(i)) = MaxCols Then

ActiveSheet.Paste

Altro

Selection.Copy

End If

Prossima ho

10

Lasciare l'istruzione "End Sub".

11

Eseguire la macro. Selezionare "Esegui", poi "Esegui Sub/UserForm" dal menu.

12

Premere "Alt + F11" per tornare al foglio di lavoro Excel e visualizzare i risultati.

Consigli & Avvertenze

  • Se non viene eseguito il codice in questo articolo, è necessario impostare la protezione macro a un livello inferiore. In Excel 2002 e 2003, selezionare "Strumenti", "Macro" e quindi "Protezione" dal menu. In Excel 2007 e 2010, fare clic sul pulsante di "Microsoft Office", quindi fare clic su "Opzioni di Excel" e selezionare "Trust Center."
  • La macro utilizza una funzione di "CountBlank" per determinare se una riga è vuota. "CountBlank" richiede le cellule per essere completamente vuoto. Se una cella contiene uno spazio o una stringa null (""), essa sarà vuoto, ma la macro verrà valutata come non vuota e non si incolla a tale riga.
  • Si può sperimentare con i propri dati di prova, ma a meno che non si modifica la macro, la prima riga deve trovarsi sulla riga 1; Riga 1 deve avere dati in almeno una cella; e l'ultima riga deve avere una voce nella colonna A.