VBA az Excel táblázat sorainak áthaladásához (11 módszer)

  • Ossza Meg Ezt
Hugh West

Amikor nagy adathalmazzal rendelkezünk az Excel-munkalapunkban, néha kényelmes, ha a sorokon keresztül hurokkal végigmehetünk a kívánt eredmények kinyerése érdekében. A VBA a leghatékonyabb, leggyorsabb és legbiztonságosabb módszer bármilyen művelet futtatására az Excelben. Ebben a cikkben 11 különböző módszert mutatunk be arra, hogy hogyan lehet hurok egy táblázat sorain keresztül Excelben a VBA makró .

Munkafüzet letöltése

Az ingyenes gyakorló Excel munkafüzetet innen töltheti le.

Hurok a táblázat sorain keresztül VBA.xlsm segítségével

11 módszer a VBA-val az Excel táblázat sorainak áthaladásához az Excel táblázatban

Ezt a részt követően megtanulhatja, hogyan hurok egy táblázat sorain keresztül 11 különböző módszerrel, mint például ciklus a sorokon, amíg egy üres cellát nem talál, ciklus a sorokon, amíg egy adott értéket nem talál, ciklus a sorokon és színezés egy adott cellában stb. VBA makró az Excelben.

A fenti példadatkészletet ez a cikk követi a módszerek ismertetéséhez.

1. A VBA beágyazása a táblázat minden egyes sorának minden celláján való áthaladáshoz a cellahivatkozási szám alapján

Ha azt szeretné, hogy hurok a táblázat minden egyes sorának minden celláján keresztül az Excel munkalapban, és megkapja a cellahivatkozási szám mint visszatérési érték , akkor kövesse az alábbiakban ismertetett lépéseket.

Lépések:

  • Az elején nyomja meg a Alt + F11 a billentyűzeten, vagy lépjen a Fejlesztő -> Visual Basic kinyitni Visual Basic szerkesztő .

  • Ezután a felugró kódablakban a menüsoron kattintson a Beszúrás -> Modul .

  • Akkor, másolat a következő kódot és paste a kódablakba.
 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 

A kódja most már futtatásra kész.

  • Most nyomja meg a F5 a billentyűzeten, vagy válassza a menüsorból a Futtatás -> Sub/UserForm futtatása . Egyszerűen csak kattints a kis Play ikon az almenüsorban a makró futtatásához.

  • Ha vizuálisan szeretné szemlélni és összehasonlítani az adathalmazt és az eredményt, a következőket teheti mentse a kódot és visszamegy a munkalaphoz érdeklődésre tarthat számot.
  • Onnan kattinthat a Makrók a Fejlesztő tab, válassza ki a makró nevét, majd kattintson a Fuss .

A sikeres kódfuttatás után nézze meg a fenti gif-et, hogy lássa az eredményt. Egy felugró ablak jelenik meg. MsgBox megmutatva neked a az egyes sorok minden egyes cellájának cellahivatkozási száma az Excel-táblázatból.

VBA kód magyarázat

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

A táblázat utolsó sorszámának keresése a B oszlopban.

 FirstRow = 4 

Állítsuk be a 4. sort, ahonnan az adataink kezdődnek.

 i = FirstRow 

Hurok az első sorból.

 FirstColumn = 2 

Állítsuk be a 2. oszlopot, ahonnan az adataink kiindulnak.

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

Kezdje el a sorok átfutását az utolsó oszlopszám megszerzéséhez az aktuális sor kiértékelésével az utolsó sorig.

 Count = FirstColumn Do Until Count> LastColumn 

Az oszlop inkrementálása az első sortól az utolsó sorig.

 MsgBox "Jelenleg iteráló cella " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop 

Ez a kódrészlet a kód feldolgozását, az egyes iterációk utáni inkrementálást és a kód eredményének megjelenítését végzi.

Bővebben: Hogyan lehet automatikusan új sort hozzáadni egy Excel-táblázatban

2. A VBA végrehajtása az egyes sorok minden egyes cellájának érték szerinti átfutásához

Ha azt szeretné, hogy a táblázat minden egyes sorának minden egyes celláján végighalad, és a cellákban található értéket adja meg visszatérési értékként. , akkor ez a rész segít kitalálni, hogyan lehet ezt megtenni a VBA Excel.

Ezt megteheti a ListObject és a DataBodyRange tulajdonsága VBA Megmutatjuk a makró kódját az objektummal és a tulajdonsággal együtt.

2.1. A ListObject segítségével

A következő lépések egy táblázat minden sorának minden celláján végighaladunk a cellák értéke szerint a ListObject segítségével. a oldalon. VBA Excel az alábbiakban található.

Lépések:

  • Ugyanúgy, mint korábban, nyissa meg Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • Ezután a kódablakban, másolat a következő kódot és paste azt.
 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 

A kódja most már futtatásra kész.

  • Utána, Fuss a makrót, ahogy azt a fenti részben bemutattuk. Az eredményt az alábbi gif mutatja.

Lesz egy pop-up MsgBox megmutatva neked a az egyes sorok minden egyes cellája által hordozott érték az Excel-táblázatból.

VBA kód magyarázat

 Dim iListRow As ListRow Dim iCol As Range 

Határozza meg a változókat.

 For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRow For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow 

Ez a kódrészlet először a táblázat sorainak átfutását kezdi el (" TblStudents " a táblázatunk neve). Ezután adja meg az egyes sorok oszlopait. Ezután adja át a cella értékét az MsgBox-ban. Ezután lépjen a következő oszlopra. Miután befejezte egy sor összes oszlopának iterálását, akkor lép a következő sorra, és folytatja az iterációs folyamatot az utolsó sorig.

2.2. A DataBodyRange tulajdonsággal

A táblázatból kivont adatok pontosabbá tételéhez használhatja a DataBodyRange tulajdonsága ListObject . DataBodyRange tulajdonság a listából a fejléc sora és a beszúrási sor közötti tartományt tartalmazó eredményt dobja ki.

A lépések, hogyan lehet a DataBodyRange segítségével a táblázat minden sorának minden celláján végighaladhat a cellák értéke szerint. a oldalon. VBA Excel az alábbiakban található.

Lépések:

  • Mint korábban bemutattuk, a nyitott Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • Akkor, másolat a következő kódot és paste a kódablakba.
 Sub LoopThroughRowsByRange() Dim iRange As Range For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange End Sub 

A kódja most már futtatásra kész.

  • Később, Fuss a makrót, és nézze meg a következő gif-et, hogy lássa a kimenetet.

Lesz egy pop-up MsgBox megmutatva neked a az egyes sorok minden egyes cellája által hordozott érték az Excel-táblázatból.

VBA kód magyarázat

 Dim iRange As Range 

Definiálja a változót.

 For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange 

Ez a kódrészlet először a táblázat sorainak átfutását kezdi el (" TblStdnt " a táblázatunk neve) és visszaad egy értéktartományt a táblázat fejléc sorát kivéve. Ezután átadja a tartomány értékét az MsgBox-ban. Ezután a következő sorra megy, hogy kivonja a tartományt és folytatja az iterációs folyamatot az utolsó sorig.

3. VBA makró alkalmazása a sorok ismételt végigfutásához az Excel oszlopok összekapcsolása révén

Ez a szakasz megmutatja, hogyan kell hurok a táblázat sorain keresztül az oszlopok és az első oszlop összekapcsolásával az Excelben lévő adatkészletből.

Például a mi adathalmazunk esetében először végigmegyünk az alábbiakon John a B5 cellában és 101 a C5 cellában összekapcsolásával, majd végigvesszük a John a B5 cellában és 89 a D5 cellában azáltal, hogy összekapcsolja őket a 5. sor .

Hadd mutassuk meg, hogyan teheti ezt meg a következőkkel VBA makró az Excelben.

Lépések:

  • Először nyissa ki Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • Másodszor, a kódablakban, másolat a következő kódot és paste azt.
 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 = iRrange.Value Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With End Sub End Sub 

A kódja most már futtatásra kész.

  • Harmadszor, Fuss Nézze meg az alábbi gif-et, hogy lássa az eredményt.

Lesz egy pop-up MsgBox megmutatva neked a az első és a második oszlop celláinak összevont értéke ( John a B5 cellában a B oszlopból John a B5 cellában és 101 a C5 cellában a C oszlopból ), majd a az első és a harmadik oszlop celláinak összesített értéke ( John a B5 cellában a B oszlopból John a B5 cellában és 89 a D5 cellában a D oszlopból ) a 5. sorszám Ez az összekapcsolási művelet addig folytatódik, amíg el nem éri a táblázat utolsó sorát.

VBA kód magyarázat

 Dim iRrange As Range Dim iValue As String 

Definiálja a változót.

 With ActiveSheet.ListObjects("TblConcatenate") 

Ezután a kód kiválasztja a táblázatot az aktív lapról (" TblConcatenate " a táblázatunk nevében).

 For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value 

Ezután elkezdi az egyes sorok iterálását, kivéve az oszlop fejlécét. Ha az iteráció talál egyezést az oszlop fejléc és a sorok közötti tartományban, akkor az értéket a iValue változó.

 Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With 

Ha a fenti feltétel nem teljesül, akkor a kód az értéket az MsgBox-ba dobja, és befejezi a feltétel teljesítését. Ezután egy másik tartományban folytatja a ciklusolást, és az iterálást a végsorig folytatja. Amint eléri a végsort, a makró befejezi a kód végrehajtását.

4. Beágyazott makró az Excel táblázat összes oszlopának összekapcsolásával a sorok ismétléséhez az Excel táblázatban

Ebben a szakaszban megtanuljuk, hogyan kell az egyes sorok összes oszlopának összekapcsolása az adatállományban a VBA makró az Excelben.

A végrehajtás lépései az alábbiakban láthatók.

Lépések:

  • Először is, nyissa ki Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • Akkor, másolat a következő kódot és paste a kódablakba.
 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 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 

A kódja most már futtatásra kész.

  • Következő, Fuss a makro kód.

Mint látható a fenti gif, hogy van egy pop-up MsgBox megmutatva neked a az egyes sorokban található összes oszlop összesített értéke az Excel munkalap táblázatából.

VBA kód magyarázat

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

Határozza meg a változókat.

 Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") 

Állítsa be a lap nevét, amellyel dolgozni fogunk (" ConcatenatingAllCol " a lap neve a munkafüzetben).

 Set iObj = iSheet.ListObjects("TblConcatenateAll") 

Határozza meg a táblázat nevét, amellyel dolgozni fogunk (" TblConcatenateAll " a táblázat neve az adatállományunkban).

 For Each iRow In iObj.ListRows 

Elindítja a táblázat minden sorának iterációját.

 For Each iCol In iObj.ListColumns 

Elindítja a táblázat minden sorának minden egyes oszlopán történő iterációt.

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

Tárolja az eredményt az egyes sorok egyes oszlopainak értékeinek keresztezésével. Miután átvizsgálta az egyes sorokban található összes oszlopot, átadta az eredményt az MsgBox-ban. Ezután ismét elkezdi a következő sorban a ciklusozást, és addig folytatja a ciklusozást, amíg el nem éri a táblázat utolsó sorát.

Bővebben: Hogyan rendezhetjük a táblázat több oszlopát az Excel VBA segítségével (2 módszer)

5. Az ismétlés leállítása, ha értéket találtak egy táblázat sorainak átfutásával VBA-makró segítségével

Tegyük fel, hogy a táblázat sorain végighalad a ciklus, és leállítja a ciklusolást, amikor egy adott értéket talál. Ezt egy egyszerű makró kóddal is megteheti.

Tanuljuk meg, hogyan kell ezt csinálni VBA Excelben.

Lépések:

  • Először nyissa ki Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • Ezután a kódablakban, másolat a következő kódot és paste azt.
 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 

A kódod most már futtatásra kész.

  • Később, Fuss a makró.
  • Ez lesz indítsa el a hurkot, és állítsa le, amikor megtalálja az adott értéket. (" Edge ") a tartományban, és dobja a eredményezi a MsgBox .

Amint a fenti képen látható, egy felugró MsgBox mutatja a cellacím, $B$10 , ahol megtaláltuk a megadott értéket, " Edge " .

VBA kód magyarázat

 Dim iData As Range 

Definiálja a változót.

 For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "Edge is found at " & iData.Address End If Next iData 

Ez a kódrészlet az 1-től 15-ig terjedő sorok átfutására szolgál. Ha megtalálja a " Edge ", majd átadja az eredményt a szónak megfelelő cellacímmel együtt. Ezt addig folytatja, amíg be nem fejezi az 1-15. sorok összes adatának átvizsgálását a szó keresése során.

További információ: Hogyan lehet sorokat és oszlopokat beszúrni vagy törölni az Excel táblázatból?

6. VBA az Excel egyes sorain való áthaladáshoz és egy adott érték színének színezéséhez

Mi van akkor, ha nem akarjuk a megadott érték cellacímét az MsgBoxba dobni? Akkor érdemes a az értéket tartalmazó cella színezése amit keres.

Tanuljuk meg, hogyan kell ezt megtenni a VBA makró.

Lépések:

  • Ugyanúgy, mint korábban, nyissa meg Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • Akkor, másolat a következő kódot és paste a kódablakba.
 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 

A kódja most már futtatásra kész.

  • Utána, Fuss a makró.
  • Ez lesz indítsa el a hurkot, és állítsa le, amikor megtalálja az adott értéket (" Edge ") a tartományban és a cella színezése a ColourIndex amelyet a kódban megadott.

Amint a fenti képen látható, C ell B10 , ahol megtaláltuk a megadott értéket, " Edge " színes a kód végrehajtása után.

VBA kód magyarázat

 Dim iData As Range 

Definiálja a változót.

 For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData 

Ez a kódrészlet az 1-től 15-ig terjedő sorok átfutására szolgál. Ha megtalálja a " Edge ", akkor kiszínezi a szót tartalmazó cellát. Ezt addig folytatja, amíg be nem fejezi az 1-15. sorok összes adatának átvizsgálását a szó keresése során.

Bővebben: Hogyan használjuk a VLOOKUP táblázatos tömböt a cellák értéke alapján az Excel-ben

Hasonló olvasmányok

  • Létezik-e TABLE funkció az Excelben?
  • Hogyan alakítsuk át a táblázatot listává az Excelben (3 gyors módja)
  • Tartomány átalakítása táblázatba az Excelben (5 egyszerű módszer)
  • Formulák hatékony használata Excel táblázatban (4 példával)
  • Excel táblázat neve: Minden, amit tudnia kell

7. VBA végrehajtása az egyes sorok átfutásához és minden páratlan sor színezéséhez az Excelben

Az előző szakaszban megtanultuk, hogyan színezhetünk ki egy adott értéket tartalmazó cellát. Ebben a szakaszban megtanuljuk, hogyan lehet végighalad a táblázat minden egyes során és minden páratlan sort kiszínez a címen VBA makró az Excelben.

A folyamat végrehajtásának lépéseit az alábbiakban ismertetjük.

Lépések:

  • Mint korábban bemutattuk, a nyitott Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • Akkor, másolat a következő kódot és paste a kódablakba.
 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 

A kódja most már futtatásra kész.

  • Most, Fuss a makrót, és nézze meg a következő képet, hogy lássa a kimenetet.

Az összes a páratlan sorok színesek a munkalap táblázatában található összes sor átfutása után.

VBA kód magyarázat

 Dim iRow As Long 

Definiálja a változót.

 With Range("B4").CurrentRegion 

Határozza meg a tartományt, amellyel dolgozni fogunk.

 For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With 

A kódnak ez a része az összes soron való iterációra utal, az aktuális sort követő sorból kiindulva, B4 Ha a sorszámok 2-vel való osztásának mod-ja megegyezik a visszaadott sorszámmal, amelyet egy egész szám típusban tárolunk, akkor ez a kód a számítás által kivont összes sort a kódban megadott színindexszel színezi ki. A kód addig halad az összes soron, amíg el nem éri a tartomány végét.

8. VBA végrehajtása a sorok átfutásához és minden páros sor színezéséhez az Excelben

Az előző részben megtanultuk, hogyan színezhetjük ki egy táblázat minden páratlan sorát. Ebben a részben megtanuljuk, hogyan lehet a táblázat minden során végighaladunk és minden páros sort kiszínezünk VBA makróval az Excelben.

A folyamat végrehajtásának lépéseit az alábbiakban tárgyaljuk.

Lépések:

  • Először is, nyissa ki Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • Akkor, másolat a következő kódot és paste a kódablakba.
 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 

A kódja most már futtatásra kész.

  • Következő, Fuss a makrót, és nézze meg a következő képet, hogy lássa az eredményt.

Az összes a páros sorok színesek a munkalap táblázatában található összes sor átfutása után.

VBA kód magyarázat

 Dim iRow As Long 

Definiálja a változót.

 With Range("B4").CurrentRegion 

Határozza meg a tartományt, amellyel dolgozni fogunk.

 For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With 

Ez a kódrészlet az aktuális sortól számított három sor után kezdi el az iterálást, B4 Először kiszínezi, majd 2-vel növeli a sorok számát, és addig színezi, amíg el nem éri az adathalmaz utolsó sorát.

9. Makró alkalmazása az Excel üres cellákig tartó sorok ismétléséhez az Excelben

Ha azt akarod, hogy a kódod úgy működjön, mintha a táblázat összes során végighalad, és megáll, amikor egy üres cellához ér , akkor ez a szakasz az Ön számára készült. Ezt a feladatot mind a FOR ciklus és a Do-Until hurok Excelben VBA .

9.1. FOR hurokkal

Lépések a hurok a táblázat sorain keresztül egy üres celláig a FOR Loop segítségével a oldalon. VBA Excel az alábbiakban található.

Lépések:

  • Először nyissa ki Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • Utána, másolat a következő kódot és paste a kódablakba.
 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 

A kódja most már futtatásra kész.

  • Akkor, Fuss a makrót, és az eredményt az alábbi gif mutatja.

A makró futtatása után elkezdett végigmenni az összes soron a táblázatban, és amint elérte a üres cella, B8 cella , ez leállította az iterációt .

VBA kód magyarázat

 Dim x As Integer 

Definiálja a változót.

 Application.ScreenUpdating = False 

Kapcsolja ki a képernyőfrissítési eseményt.

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

Tárolja az összes sort a B4-es cella az utolsóig.

 Range("B4").Select 

Válassza ki a címet. B4-es cella .

 For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Következő 

Ez a kódrészlet elkezdi az összes soron végigfutni a hurkot. Amikor egy sorban üres cellát talál, akkor kiválasztja azt, és folytatja a sorok átvizsgálását, amíg el nem éri a végét.

 Application.ScreenUpdating = True 

Kapcsolja be a képernyőfrissítési eseményt.

9.2. A Do-Until hurokkal

Lépések a hurok a sorokon keresztül, amíg egy üres cellát nem talál a Do-Until hurokkal a oldalon. VBA az alábbiakban adjuk meg.

Lépések:

  • Először is, nyissa ki Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • Akkor, másolat a következő kódot és paste a kódablakba.
 Sub DoUntilLoopThroughRowsUntilBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub 

A kódja most már futtatásra kész.

  • Később, Fuss Az eredményt a következő gif mutatja.

A makró futtatása után elindult az összes soron végighaladva a táblázatban, és amint elérte a üres cella, B8 cella , ez leállította az iterációt .

VBA kód magyarázat

 Range("B4").Select 

Válassza ki a cellát, amelyből dolgozni fogunk.

 Do Until IsEmpty(ActiveCell) 

Elindítja és folytatja a ciklusolást, amíg üres cellát nem talál.

 ActiveCell.Offset(1, 0).Select Loop 

Ha egy sorban üres cellát talál, akkor válassza ki azt, és állítsa le az iterációt.

10. VBA makró a sorok ismétléséhez, amíg több üres cellát nem tartalmaz az Excelben

Az előző részben megtanulta, hogyan állítsa le a ciklus működését, ha üres cellát talál. De mi van akkor, ha nem akarja leállítani az iterációt, amíg nem talál több üres cellát, hanem csak egyet.

A következő lépések ciklus a sorokon keresztül, amíg több üres cellát nem kapunk egy táblázatban találhatók VBA Excel az alábbiakban látható.

Lépések:

  • Először is, nyissa ki Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • Akkor, másolat a következő kódot és paste a kódablakba.
 Sub LoopThroughRowsUntilMultipleBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) ActiveCell.Offset(2, 0).Select Loop End Sub 

A kódja most már futtatásra kész.

  • Most, Fuss a makrót, és nézze meg a következő gif-et a kimenethez.

A makró futtatása után nem állt meg az első üres cellánál, a B8-as cellánál . Megállt, amikor megtalálta két egymást követő üres cellát a B16 cellán .

VBA kód magyarázat

 Range("B4").Select 

Válassza ki a cellát, amelyből dolgozni fogunk.

 Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) 

Elindítja és folytatja a ciklusolást, amíg két egymást követő üres cellát nem talál.

 ActiveCell.Offset(2, 0).Select Loop 

Ha két egymást követő üres cellát talál, akkor válassza ki, és állítsa le az iterációt.

11. Beágyazott VBA a sorok átfutásához az összes oszlopok összekapcsolásával, amíg üres nem lesz az Excelben

Ez a szakasz megmutatja, hogyan végighalad a táblázat összes során, és az összes oszlopot egy üres celláig összekapcsolja. a következővel található VBA Excel.

Tanuljuk meg, hogyan kell ezt megtenni a VBA makró az Excelben.

Lépések:

  • Először nyissa ki Visual Basic szerkesztő a Fejlesztő lap és Beillesztés a Modul a kódablakban.
  • Akkor, másolat a következő kódot és paste a kódablakba.
 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 

A kódja most már futtatásra kész.

  • Később, Fuss a makrót, és az eredményt lásd a következő gifben.

Mint látható a fenti gif, hogy van egy pop-up MsgBox megmutatva neked a az egyes sorokban található összes oszlop összesített értéke az Excel munkalapjának táblázatából. De ez megállt, amint elérte az üres cellát .

VBA kód magyarázat

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

Határozza meg a változókat.

 Set iSheet = Sheets("ConcatenatingAllColUntilBlank") 

Állítsa be a lap nevét, amellyel dolgozni fogunk (" ConcatenatingAllColUntilBlank " a lap neve a munkafüzetben).

 iValue = Range("B4").CurrentRegion 

Határozza meg a tartományt, amellyel dolgozni fogunk.

 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 

Ez a kódrészlet a tömbtel kezdi a kört. A kört addig folytatja, amíg vissza nem adja a tömb legnagyobb alindexét és az első dimenzió alsó korlátját. Ezután belép a második dimenzió alsó korlátjának kinyerésére szolgáló iterációba. Ezután az összes kinyerhető értéket átadja a iResult változót azáltal, hogy összekapcsolja őket, és az eredményt az MsgBox-ba dobja. Ezt addig folytatja, amíg üres cellát nem talál.

Következtetés

Összefoglalva, ez a cikk 11 hatékony módszert mutatott meg arra, hogyan kell hurok egy táblázat sorain keresztül Excelben a VBA makró . remélem, hogy ez a cikk nagyon hasznos volt az Ön számára. Nyugodtan tegye fel kérdéseit a témával kapcsolatban.

Hugh West nagy tapasztalattal rendelkező Excel-oktató és elemző, több mint 10 éves tapasztalattal az iparágban. Számvitel és pénzügy szakos alapdiplomát, valamint üzleti adminisztrációból mesterképzést szerzett. Hugh szenvedélye a tanítás, és egyedülálló tanítási megközelítést dolgozott ki, amely könnyen követhető és érthető. Az Excelben szerzett szakértői tudása világszerte több ezer diáknak és szakembernek segített abban, hogy készségeiket és karrierjüket kiválóan teljesítsék. Hugh blogján keresztül megosztja tudását a világgal, ingyenes Excel-oktatóanyagokat és online képzéseket kínálva, hogy segítse az egyéneket és a vállalkozásokat teljes potenciáljuk kibontakoztatásában.