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.