VBA per scorrere le righe di una tabella in Excel (11 metodi)

  • Condividi Questo
Hugh West

Quando abbiamo un set di dati di grandi dimensioni nella nostra cartella di lavoro di Excel, a volte è comodo poter scorrere le righe per estrarre i risultati specifici che vogliamo ottenere. Implementazione di VBA è il metodo più efficace, rapido e sicuro per eseguire qualsiasi operazione in Excel. In questo articolo, vi mostreremo 11 metodi diversi su come ciclo attraverso le righe di una tabella in Excel con l'opzione Macro VBA .

Scarica il libro di lavoro

Potete scaricare la cartella di lavoro Excel gratuita da qui.

Eseguire il loop delle righe di una tabella con VBA.xlsm

11 metodi con VBA per scorrere le righe di una tabella in Excel

In questa sezione si apprenderà come ciclo attraverso le righe di una tabella con 11 metodi diversi, come il ciclo delle righe fino a una cella vuota, il ciclo delle righe fino a un valore specifico, il ciclo delle righe e il colore di una cella specifica, ecc. VBA macro in Excel.

Qui sopra è riportato il set di dati di esempio che questo articolo seguirà per descrivere i metodi.

1. Incorporare VBA per eseguire il loop di ogni cella di ogni riga di una tabella in base al numero di riferimento della cella.

Se si vuole eseguire un ciclo per ogni cella di ogni riga di una tabella nel foglio di lavoro di Excel e ottenere il risultato numero di riferimento della cella come valore di ritorno , quindi seguire la procedura descritta di seguito.

Passi:

  • All'inizio, premere Alt + F11 sulla tastiera o andare alla scheda Sviluppatore -> Visual Basic per aprire Editor Visual Basic .

  • Quindi, nella finestra del codice a comparsa, dalla barra dei menu, fare clic su Inserire -> Modulo .

  • Allora, copia il seguente codice e pasta nella finestra del codice.
 Sub LoopThroughRowsByRef() LastRow = Range("B" & Rows.Count).End(xlUp).Row FirstRow = 4 i = FirstRow FirstColumn = 2 Do Until i> LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column Count = FirstColumn Do Until Count> LastColumn MsgBox "Currently iterating cell " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop End Sub 

Il codice è ora pronto per essere eseguito.

  • Ora, premere F5 sulla tastiera o dalla barra dei menu selezionare Esegui -> Esegui Sub/UserForm Si può anche fare clic sul pulsante piccola icona Play nella barra dei menu secondari per eseguire la macro.

  • Oppure, per vedere e confrontare visivamente il set di dati e il risultato, è possibile salvare il codice e tornare al foglio di lavoro di interesse.
  • Da qui, è possibile fare clic su Macro dal Sviluppatore scheda, selezionare il nome della macro, e poi fare clic su Correre .

Dopo l'esecuzione del codice, guardate la gif qui sopra per vedere il risultato. Verrà visualizzato un pop-up MsgBox mostrandovi il numero di riferimento di ogni cella di ogni riga dalla tabella del foglio Excel.

Spiegazione del codice VBA

 LastRow = Range("B" & Rows.Count).End(xlUp).Row 

Per ottenere l'ultimo numero di riga della tabella cercando nella colonna B.

 FirstRow = 4 

Impostare la riga numero 4, da cui partono i dati.

 i = PrimaRiga 

Per eseguire il loop dalla prima riga.

 PrimaColonna = 2 

Impostare la colonna numero 2, da cui partono i nostri dati.

 Do Until i> LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column 

Inizia a scorrere le righe per ottenere l'ultimo numero di colonna valutando la riga corrente fino all'ultima riga.

 Conteggio = PrimaColonna Fare Fino a Conteggio> UltimaColonna 

Incrementa il ciclo della colonna dalla prima riga fino all'ultima riga.

 MsgBox "Cella attualmente in iterazione " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop 

Questo pezzo di codice funziona per elaborare, incrementare dopo ogni iterazione e visualizzare il risultato del codice.

Per saperne di più: Come aggiungere automaticamente una nuova riga in una tabella di Excel

2. Implementare VBA per eseguire il loop di ogni cella di ogni riga in base al valore

Se si vuole esegue un ciclo su ogni cella di ogni riga di una tabella e restituisce il valore che risiede nelle celle come valore di ritorno questa sezione vi aiuterà a capire come farlo con VBA Excel.

È possibile farlo con l'opzione Oggetto-lista e con il CorpoDatiCampo proprietà di VBA Verrà mostrato il codice della macro con l'oggetto e la proprietà.

2.1. Con l'oggetto ListObject

I passi per scorrere ogni cella di ogni riga di una tabella in base al valore della cella con l'oggetto ListObject in VBA Excel sono riportati di seguito.

Passi:

  • Allo stesso modo di prima, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Poi, nella finestra del codice, copia il seguente codice e pasta it.
 Sub LoopThroughRowsByList() Dim iListRow As ListRow Dim iCol As Range For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRows For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow End Sub 

Il codice è ora pronto per essere eseguito.

  • Dopo di che, Correre il macro come mostrato nella sezione precedente. Il risultato è mostrato nella gif qui sotto.

Ci sarà un pop-up MsgBox mostrandovi il valore trasportato da ogni cella di ogni riga dalla tabella del foglio Excel.

Spiegazione del codice VBA

 Dim iListRow come ListRow Dim iCol come Intervallo 

Definire le variabili.

 Per ogni iListRow in ActiveSheet.ListObjects("TblStudents").ListRows Per ogni iCol in iListRow.Range MsgBox iCol.Value Next iCol Next iListRow 

Questo pezzo di codice inizia a scorrere le righe della tabella (" TblStudenti " è il nome della nostra tabella). Quindi inserisce le colonne per ogni riga. Poi passa il valore della cella in MsgBox. Quindi passa alla colonna successiva. Dopo aver terminato l'iterazione di tutte le colonne di una riga, passa alla riga successiva e continua il processo di iterazione fino all'ultima riga.

2.2. Con la proprietà DataBodyRange

Per essere più precisi con i dati estratti dalla tabella, si può utilizzare l'opzione CorpoDatiCampo proprietà di Oggetto-lista . CorpoDatiCampo restituirà il risultato contenente l'intervallo dell'elenco tra la riga di intestazione e la riga di inserimento.

I passaggi su come si può scorrere ogni cella di ogni riga di una tabella in base al valore della cella con il DataBodyRange in VBA Excel sono riportati di seguito.

Passi:

  • Come mostrato in precedenza, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Allora, copia il seguente codice e pasta nella finestra del codice.
 Sub LoopThroughRowsByRange() Dim iRange As Range For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange End Sub 

Il codice è ora pronto per essere eseguito.

  • Più tardi, Correre la macro e guardate la seguente gif per vedere l'output.

Ci sarà un pop-up MsgBox mostrandovi il valore trasportato da ogni cella di ogni riga dalla tabella del foglio Excel.

Spiegazione del codice VBA

 Dim iRange come intervallo 

Definire la variabile.

 Per ogni iRange in ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange 

Questo pezzo di codice inizia a scorrere le righe della tabella (" TblStdnt " è il nome della nostra tabella) e restituisce un intervallo di valori, esclusa la riga di intestazione della tabella. Quindi passa il valore dell'intervallo in MsgBox. Poi passa alla riga successiva per estrarre l'intervallo e continua il processo di iterazione fino all'ultima riga.

3. Applicare la macro VBA per iterare le righe concatenando le colonne in Excel

Questa sezione mostra come Eseguire il loop delle righe di una tabella concatenando le colonne con la prima colonna dal set di dati in Excel.

Ad esempio, per il nostro set di dati, per prima cosa si itererà attraverso Giovanni nella cella B5 e 101 nella cella C5 concatenandoli e poi iterando attraverso Giovanni nella cella B5 e 89 nella cella D5 concatenandoli da fila 5 .

Vi mostriamo come potete farlo con VBA macro in Excel.

Passi:

  • All'inizio, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • In secondo luogo, nella finestra del codice, copia il seguente codice e pasta it.
 Sub LoopThroughRowsByConcatenatingCol() Dim iRange As Range Dim iValue As String With ActiveSheet.ListObjects("TblConcatenate") For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With End Sub 

Il codice è ora pronto per essere eseguito.

  • Terzo, Correre Guardate la gif qui sotto per vedere il risultato.

Ci sarà un pop-up MsgBox mostrandovi il valore concatenato delle celle della prima e della seconda colonna ( Giovanni nella cella B5 dalla colonna B e 101 nella cella C5 della colonna C ) e poi il valore concatenato delle celle della prima e della terza colonna ( Giovanni nella cella B5 dalla colonna B e 89 nella cella D5 della colonna D ) di fila numero 5 Questa operazione di concatenazione continuerà fino a raggiungere l'ultima riga della tabella.

Spiegazione del codice VBA

 Dim iRange come intervallo Dim iValue come stringa 

Definire la variabile.

 Con ActiveSheet.ListObjects("TblConcatenate") 

Poi il codice seleziona la tabella dal foglio attivo (" TblConcatenate " nel nome della tabella).

 Per ogni iRange in .DataBodyRange Se iRange.Colonna = .DataBodyRange.Colonna Allora iValue = iRange.Valore 

Se l'iterazione trova una corrispondenza nell'intervallo tra l'intestazione della colonna e le righe, il valore viene memorizzato nella cartella iValore variabile.

 Altrimenti MsgBox "Valutazione " & iValue & ": " & iRange.Value End If Next iRange End With 

Se la condizione di cui sopra non viene soddisfatta, il codice lancia il valore in MsgBox e termina la condizione. Dopodiché, passa al looping in un altro intervallo e continua l'iterazione fino alla riga finale. Una volta raggiunta la riga finale, la macro termina l'esecuzione del codice.

4. Macro incorporata per iterare le righe concatenando tutte le colonne di una tabella in Excel

In questa sezione, impareremo come concatenare tutte le colonne di ogni riga nel set di dati con VBA macro in Excel.

Di seguito sono illustrati i passaggi per l'esecuzione.

Passi:

  • In primo luogo, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Allora, copia il seguente codice e pasta nella finestra del codice.
 Sub LoopThroughRowsByConcatenatingAllCol() Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") Set iObj = iSheet.ListObjects("TblConcatenateAll") For Each iRow In iObj.ListRows For Each iCol In iObj.ListColumns iResult = iResult & " " &Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Next iCol MsgBox iResult iResult = "" Next iRow End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre il codice della macro.

Come si può vedere dalla gif qui sopra, è presente un pop-up MsgBox mostrandovi il valore concatenato di tutte le colonne che risiedono in ogni riga dalla tabella del foglio di lavoro Excel.

Spiegazione del codice VBA

 Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String 

Definire le variabili.

 Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") 

Impostate il nome del foglio con cui lavoreremo (" Concatenazione diAllCol " è il nome del foglio nella cartella di lavoro).

 Set iObj = iSheet.ListObjects("TblConcatenateAll") 

Definite il nome della tabella con cui lavoreremo (" TblConcatenateAll " è il nome della tabella nel nostro set di dati).

 Per ogni iRow in iObj.ListRows 

Avvia l'iterazione di ogni riga della tabella.

 Per ogni iCol in iObj.ListColumns 

Avvia l'iterazione di ogni colonna di ogni riga della tabella.

 iResult = iResult & " " & Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Next iCol MsgBox iResult iResult = "" Next iRow 

Memorizza il risultato intersecando i valori che ogni colonna di ogni riga porta con sé. Dopo aver scansionato tutte le colonne che risiedono in ogni riga, passa il risultato in MsgBox. Quindi ricomincia il looping nella riga successiva e continua fino a raggiungere l'ultima riga della tabella.

Per saperne di più: Come ordinare più colonne di una tabella con Excel VBA (2 metodi)

5. Interrompere l'iterazione se il valore è stato trovato con il looping delle righe di una tabella con la macro VBA

Supponiamo di voler esegue un ciclo attraverso le righe della tabella e interrompe il ciclo quando trova un valore specifico È possibile farlo con un semplice codice macro.

Impariamo a farlo VBA in Excel.

Passi:

  • All'inizio, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Poi, nella finestra del codice, copia il seguente codice e pasta it.
 Sub LoopThroughRowsForValue() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "Edge is found at " & iData.Address End If Next iData End Sub 

Il codice è ora pronto per essere eseguito.

  • Più tardi, Correre la macro.
  • Sarà avviare il ciclo e fermarlo quando trova il valore specifico (" Bordo ") nell'intervallo e lancia l'opzione risultato nel MsgBox .

Come si può vedere dall'immagine qui sopra, è presente un MsgBox a comparsa che mostra la indirizzo della cella, $B$10 dove abbiamo trovato il valore specificato, " Bordo " .

Spiegazione del codice VBA

 Dim iData come intervallo 

Definire la variabile.

 Per ogni iData nell'intervallo("1:15") Se iData.Value = "Edge" Allora MsgBox "L'Edge è stato trovato a " & iData.Address End If Next iData 

Questo pezzo di codice è qui per scorrere le righe da 1 a 15. Se trova la parola specifica " Bordo "Continua a farlo finché non termina la scansione di tutti i dati delle righe da 1 a 15 alla ricerca della parola.

Per saperne di più: Come inserire o eliminare righe e colonne da una tabella di Excel

6. VBA per eseguire il loop di ogni riga e colorare un valore specifico in Excel

Se non si vuole lanciare l'indirizzo della cella del valore specificato in MsgBox, si può scegliere di colorare la cella che contiene il valore che state cercando.

Impariamo a farlo con VBA macro.

Passi:

  • Allo stesso modo di prima, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Allora, copia il seguente codice e pasta nella finestra del codice.
 Sub LoopThroughRowsAndColor() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData End Sub 

Il codice è ora pronto per essere eseguito.

  • Dopo di che, Correre la macro.
  • Sarà avvia il ciclo e lo interrompe quando trova il valore specifico (" Bordo ") nell'intervallo e colorare la cella con il Indice del colore che avete fornito nel codice.

Come si può vedere dall'immagine qui sopra, C ell B10 dove abbiamo trovato il valore specificato, " Bordo " è colorato dopo l'esecuzione del codice.

Spiegazione del codice VBA

 Dim iData come intervallo 

Definire la variabile.

 Per ogni iData nell'intervallo("1:15") Se iData.Value = "Edge" Allora iData.Interior.ColorIndex = 8 End If Next iData 

Questo pezzo di codice è qui per scorrere le righe da 1 a 15. Se trova la parola specifica " Bordo "Continua a farlo finché non termina la scansione di tutti i dati delle righe da 1 a 15 alla ricerca della parola.

Per saperne di più: Come utilizzare la matrice di tabelle VLOOKUP in base al valore della cella in Excel

Letture simili

  • La funzione TABLE esiste in Excel?
  • Come convertire una tabella in un elenco in Excel (3 modi rapidi)
  • Convertire un intervallo in una tabella in Excel (5 metodi semplici)
  • Usare efficacemente le formule in una tabella di Excel (con 4 esempi)
  • Nome della tabella di Excel: tutto quello che c'è da sapere

7. Implementare VBA per eseguire il loop di ogni riga e colorare ogni riga dispari in Excel

Nella sezione precedente abbiamo imparato a colorare una cella con un valore specifico. In questa sezione impareremo a colorare una cella con un valore specifico. Eseguire un ciclo su ogni riga di una tabella e colorare ogni riga dispari con VBA macro in Excel.

Di seguito sono descritti i passaggi per l'esecuzione del processo.

Passi:

  • Come mostrato in precedenza, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Allora, copia il seguente codice e pasta nella finestra del codice.
 Sub LoopThroughRowsAndColorOddRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With End Sub 

Il codice è ora pronto per essere eseguito.

  • Ora, Correre la macro e osservare l'immagine seguente per vedere l'output.

Tutti i le righe dispari sono colorate dopo aver percorso tutte le righe presenti nella tabella del foglio di lavoro.

Spiegazione del codice VBA

 Dim iRow come lungo 

Definire la variabile.

 Con Intervallo("B4").CurrentRegion 

Definire l'intervallo con cui lavorare.

 Per iRow = 2 a .Rows.Count Se iRow / 2 = Int(iRow / 2) Allora .Rows(iRow).Interior.ColorIndex = 8 End If Next End With 

Questa parte del codice si riferisce all'iterazione di tutte le righe, a partire dalla riga successiva a quella corrente, B4 Se la mod di divisione dei numeri di riga per 2 è uguale al numero di riga restituito memorizzato in un tipo intero, il codice colora tutte le righe estratte dal calcolo con l'indice di colore fornito nel codice. Continua a scorrere tutte le righe fino a raggiungere la fine dell'intervallo.

8. Implementare VBA per eseguire il loop delle righe e colorare ogni riga pari in Excel

Nella sezione precedente abbiamo imparato a colorare ogni riga dispari di una tabella. In questa sezione impareremo a colorare ogni riga dispari di una tabella. Esegue un ciclo per ogni riga di una tabella e colora ogni riga pari con macro VBA in Excel.

Le fasi di esecuzione del processo sono illustrate di seguito.

Passi:

  • In primo luogo, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Allora, copia il seguente codice e pasta nella finestra del codice.
 Sub LoopThroughRowsAndColorEvenRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With End Sub 

Il codice è ora pronto per essere eseguito.

  • Il prossimo, Correre la macro e guardate l'immagine seguente per vedere il risultato.

Tutti i le righe pari sono colorate dopo aver percorso tutte le righe presenti nella tabella del foglio di lavoro.

Spiegazione del codice VBA

 Dim iRow come lungo 

Definire la variabile.

 Con Intervallo("B4").CurrentRegion 

Definire l'intervallo con cui lavorare.

 Per iRow = 3 A .Rows.Count Passo 2 .Rows(iRow).Interior.ColorIndex = 8 Prossimo Fine Con 

Questo pezzo di codice inizia l'iterazione dopo le tre righe a partire dalla riga corrente, B4 La colora per prima, poi incrementa il numero di righe di 2 e continua a colorarla finché non raggiunge l'ultima riga del set di dati.

9. Applicare una macro per iterare le righe fino alla cella vuota in Excel

Se si vuole che il codice funzioni come se fosse esegue un ciclo su tutte le righe della tabella e si ferma quando raggiunge una cella vuota Questa sezione fa al caso vostro. È possibile eseguire questo compito sia con il comando ciclo FOR e il Ciclo Do-Until in Excel VBA .

9.1. Con ciclo FOR

Passi per scorrere le righe di una tabella fino a una cella vuota con il ciclo FOR in VBA Excel sono riportati di seguito.

Passi:

  • All'inizio, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Dopo di che, copia il seguente codice e pasta nella finestra del codice.
 Sub ForLoopThroughRowsUntilBlank() Dim x As Integer Application.ScreenUpdating = False NumRows = Range("B4", Range("B4").End(xlDown)).Rows.Count Range("B4").Select For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next Application.ScreenUpdating = True End Sub 

Il codice è ora pronto per essere eseguito.

  • Allora, Correre la macro e il risultato è mostrato nella gif qui sotto.

Dopo aver eseguito la macro, essa ha iniziato a scorrere tutte le righe nella tabella e una volta raggiunto il cella vuota, cella B8 , it ha interrotto l'iterazione .

Spiegazione del codice VBA

 Dim x come intero 

Definire la variabile.

 Application.ScreenUpdating = False 

Disattivare l'evento di aggiornamento dello schermo.

 NumRows = Range("B4", Range("B4").End(xlDown)).Rows.Count 

Memorizzare tutte le righe a partire da Cellula B4 fino all'ultimo.

 Intervallo("B4").Selezionare 

Selezionare Cellula B4 .

 Per x = 1 a NumRows ActiveCell.Offset(1, 0).Select Prossimo 

Questo pezzo di codice inizia a scorrere tutte le righe, quando trova una cella vuota in una riga la seleziona e continua a scorrere le righe fino alla fine.

 Application.ScreenUpdating = True 

Attivare l'evento di aggiornamento dello schermo.

9.2. Con ciclo Do-Until

Passi per Eseguire un ciclo di righe fino a una cella vuota con il ciclo Do-Until in VBA sono riportati di seguito.

Passi:

  • In primo luogo, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Allora, copia il seguente codice e pasta nella finestra del codice.
 Sub DoUntilLoopThroughRowsUntilBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub 

Il codice è ora pronto per essere eseguito.

  • Più tardi, Correre Il risultato è mostrato nella seguente immagine.

Dopo aver eseguito la macro, si è avviato in loop su tutte le righe nella tabella e una volta raggiunto il cella vuota, cella B8 , it ha interrotto l'iterazione .

Spiegazione del codice VBA

 Intervallo("B4").Selezionare 

Selezionare la cella da cui lavorare.

 Fare fino a IsEmpty(ActiveCell) 

Avvia e continua il ciclo finché non viene trovata una cella vuota.

 ActiveCell.Offset(1, 0).Select Loop 

Quando in una riga viene trovata una cella vuota, la si seleziona e si interrompe l'iterazione.

10. Macro VBA per iterare le righe fino a più celle vuote in Excel

Nella sezione precedente si è appreso come interrompere il ciclo quando viene trovata una cella vuota, ma se non si vuole interrompere l'iterazione fino a quando non vengono trovate più celle vuote invece di una sola.

I passi per Eseguire un ciclo di righe fino a quando non ci sono più celle vuote si trovano in una tabella con VBA Excel sono mostrati di seguito.

Passi:

  • In primo luogo, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Allora, copia il seguente codice e pasta nella finestra del codice.
 Sub LoopThroughRowsUntilMultipleBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) ActiveCell.Offset(2, 0).Select Loop End Sub 

Il codice è ora pronto per essere eseguito.

  • Ora, Correre la macro e vedere la seguente gif per l'output.

Dopo aver eseguito la macro, essa non si è fermato alla prima cella vuota, la cella B8. Si è fermato quando ha trovato due cellule vuote consecutive sulla cellula B16 .

Spiegazione del codice VBA

 Intervallo("B4").Selezionare 

Selezionare la cella da cui lavorare.

 Eseguire fino a quando IsEmpty(ActiveCell) e IsEmpty(ActiveCell.Offset(1, 0)) 

Avvia e continua il ciclo finché non vengono trovate due celle vuote consecutive.

 ActiveCell.Offset(2, 0).Select Loop 

Quando vengono trovate due celle vuote consecutive, la si seleziona e si interrompe l'iterazione.

11. Incorporare VBA per eseguire un ciclo di righe concatenando tutte le colonne fino a quando non sono vuote in Excel

Questa sezione mostra come Esegue un ciclo su tutte le righe di una tabella e concatena tutte le colonne fino a una cella vuota. si trova con VBA Excel.

Impariamo a farlo con VBA macro in Excel.

Passi:

  • All'inizio, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Allora, copia il seguente codice e pasta nella finestra del codice.
 Sub ConcatenatingAllColUntilBlank() Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String Set iSheet = Sheets("ConcatenatingAllColUntilBlank") iValue = Range("B4").CurrentRegion For i = 2 To UBound(iValue, 1) iResult = "" For J = 1 To UBound(iValue, 2) iResult = IIf(iResult = "", iValue(i, J), iResult & " & iValue(i, J)) Next J MsgBox iResult Next i End Sub 

Il codice è ora pronto per essere eseguito.

  • Più tardi, Correre la macro e vedere la seguente gif per il risultato.

Come si può vedere dalla gif qui sopra è presente un pop-up MsgBox mostrandovi il valore concatenato di tutte le colonne che risiedono in ogni riga dalla tabella del foglio di lavoro di Excel. si ferma una volta raggiunta la cella vuota .

Spiegazione del codice VBA

 Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String 

Definire le variabili.

 Set iSheet = Sheets("ConcatenatingAllColUntilBlank") 

Impostate il nome del foglio con cui lavoreremo (" Concatenazione diAllColUntilBlank " è il nome del foglio nella cartella di lavoro).

 iValue = Intervallo("B4").CurrentRegion 

Definire l'intervallo con cui lavorare.

 Per i = 2 A UBound(iValue, 1) iResult = "" Per J = 1 A UBound(iValue, 2) iResult = IIf(iResult = "", iValue(i, J), iResult & " " & iValue(i, J)) Next J MsgBox iResult Next i 

Questo pezzo di codice inizia il ciclo con l'array e continua a farlo finché non restituisce il pedice più grande dell'array e il limite inferiore della prima dimensione. Quindi entra nell'iterazione per estrarre il limite inferiore della seconda dimensione. Dopodiché, passa tutti i valori estratti nel metodo iRisultato concatenandoli e gettando il risultato in MsgBox. Continua a farlo finché non trova una cella vuota.

Conclusione

Per concludere, questo articolo vi ha mostrato 11 metodi efficaci su come ciclo attraverso le righe di una tabella in Excel con l'opzione Macro VBA Spero che questo articolo sia stato di grande aiuto per voi. Sentitevi liberi di porre qualsiasi domanda sull'argomento.

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.