Come copiare e incollare a righe disponibili in Macro

September 21

Come copiare e incollare a righe disponibili in Macro


Microsoft Excel è particolarmente appassionato di intervalli contigui. Quando una serie è interrotta da celle vuote, Excel aggiunge un livello di difficoltà per le attività di foglio di calcolo. A volte la soluzione è quella di riempire gli spazi vuoti, la copia di file che contengono dati e incollando i valori nelle righe vuote sotto. Se si lavora con un grande foglio di calcolo, probabilmente non si vuole farlo a mano. Invece, utilizzare un Visual Basic, Applications Edition (VBA) per trovare le righe disponibili e incollare i dati in modo automatico.

istruzione

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 vuoti. Digita il seguente:

Cella B1: test1

Cellulare C1: test1

Cella A4: test2

Cellulare B4: test2

Cellulare C4: test2

Cella D4: test2

Cellulare A5: test3

Cellulare B5: test3

Cellulare C5: test3

Cellulare A9: test4

3 Premere il tasto "Alt + F11" per aprire l'editor di Visual Basic.

4 Inserire un modulo vuoto per tenere il vostro codice VBA. Selezionare "Inserisci", quindi "Modulo" dal menu.

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

PasteAvail Sub ()

Premere Invio." Excel aggiungere un'istruzione "End Sub".

6 Dichiarare le variabili che si intende utilizzare. Digitare il seguente tra il "Sub" e le dichiarazioni "End Sub":

MaxRows Dim As Long, LastRow As Long, i As Long

MaxCols fiochi come Integer, FirstRow come numero intero

7 Assegnare le variabili per contenere il numero totale di righe e colonne del foglio di lavoro. Il valore effettivo di queste variabili dipenderà da quale versione di Excel che si sta utilizzando. Digitare quanto segue:

MaxRows = Rows.Count

MaxCols = Columns.Count

8 Assegnare le variabili per contenere numeri di riga per le prime e le ultime righe che contengono i dati. Questo evita un ciclo lungo attraverso ogni riga del foglio di lavoro. Digitare quanto segue:

FirstRow = 1

LastRow = Cells (MaxRows, 1) .End (xlUp) .Row

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

Per i = FirstRow Per LastRow

Le righe (i) .Select

Se WorksheetFunction.CountBlank (righe (i)) = MaxCols Poi

ActiveSheet.Paste

Altro

Selection.Copy

Finisci se

Next i

10 Lasciare l'affermazione "End Sub" a posto.

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

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

Consigli e avvertenze

  • Se il codice in questo articolo non viene eseguito, potrebbe essere necessario impostare la protezione macro a un livello inferiore. In Excel 2002 e 2003, selezionare "Strumenti", "Macro" e poi "Sicurezza" dal menu. In Excel 2007 e il 2010, fare clic sul pulsante "Microsoft Office", quindi su "Opzioni di Excel" e selezionare "Centro protezione."
  • La macro utilizza una funzione di "CountBlank" per determinare se una riga è vuota. "CountBlank" richiede le cellule di essere completamente vuoto. Se una cella contiene uno spazio o una stringa nulla ( ""), sembrerà vuoto ma la macro valuterà come non vuota e non si incolla per quella riga.
  • Si può sperimentare con i propri dati di test, ma se non si cambia la macro, la prima riga deve essere posizionato sulla riga 1; Linea 1 deve avere i dati in almeno una cella; e l'ultima riga deve avere una voce nella colonna A.