VBA Excelin taulukon rivien läpikäymiseen (11 menetelmää)

  • Jaa Tämä
Hugh West

Kun Excel-työkirjassamme on suuri tietokokonaisuus, joskus on kätevää, että voimme käydä rivejä läpi ja poimia haluamamme tulokset. Toteuttaminen VBA on tehokkain, nopein ja turvallisin tapa suorittaa mitä tahansa toimintoa Excelissä. Tässä artikkelissa näytämme 11 eri menetelmää, joilla voit tehdä silmukka taulukon rivien läpi Excelissä VBA-makro .

Lataa työkirja

Voit ladata ilmaisen harjoitus-Excel-työkirjan täältä.

Taulukon rivien läpikäynti VBA.xlsm:llä

11 menetelmää VBA: n avulla Excelin taulukon rivien läpikäymiseen Excelissä

Tämän jakson jälkeen opit, miten silmukka taulukon rivien läpi 11:llä eri menetelmällä, kuten silmukalla rivien läpi, kunnes tyhjä solu löytyy, silmukalla rivien läpi, kunnes tietty arvo löytyy, silmukalla rivien läpi ja värittää tietty solu, jne. VBA makro Excelissä.

Yllä on esimerkkitietoaineisto, jota tässä artikkelissa noudatetaan menetelmien kuvailussa.

1. Upota VBA, jotta voit käydä läpi jokaisen taulukon jokaisen rivin jokaisen solun soluviitenumeron mukaan.

Jos haluat silmukka jokaisen solun läpi jokaisella taulukon rivillä Excel-taulukkoon ja saat solun viitenumero paluuarvona , seuraa sitten alla esitettyjä ohjeita.

Vaiheet:

  • Alussa paina Alt + F11 näppäimistöllä tai siirry välilehdelle Kehittäjä -> Visual Basic avata Visual Basic Editor .

  • Seuraavaksi valitse ponnahdusikkunan valikkoriviltä komento Lisää -> Moduuli .

  • Sitten, kopioi seuraava koodi ja liitä se koodiikkunaan.
 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 "Tällä hetkellä iteroi solu " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop End Sub 

Koodisi on nyt valmis ajettavaksi.

  • Paina nyt F5 näppäimistöllä tai valitse valikkoriviltä Suorita -> Suorita Sub/UserForm . Voit myös vain klikata pieni Play-kuvake alivalikkopalkissa makron suorittamiseksi.

  • Voit myös visuaalisesti todistaa ja vertailla tietokokonaisuutta ja tulosta seuraavasti save koodi ja palaa takaisin laskentataulukkoon kiinnostava.
  • Sieltä voit napsauttaa Makrot alkaen Kehittäjä välilehti, valitse makron nimi, ja napsauta sitten Suorita .

Kun koodin suoritus on onnistunut, katso yllä olevaa kuvaa nähdäksesi tuloksen. Siihen tulee ponnahdusikkuna MsgBox näyttämällä sinulle kunkin rivin jokaisen solun soluviitenumero Excel-taulukosta.

VBA-koodin selitys

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

Saadaksesi taulukon viimeisen rivin numeron etsimällä sarakkeesta B.

 FirstRow = 4 

Aseta rivi numero 4, josta tiedot alkavat.

 i = FirstRow 

Silmukka ensimmäiseltä riviltä.

 FirstColumn = 2 

Asetetaan sarake numero 2, josta tiedot alkavat.

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

Aloita rivien läpikäynti viimeisen sarakkeen numeron saamiseksi arvioimalla nykyistä riviä viimeiseen riviin asti.

 Count = FirstColumn Do Until Count> LastColumn 

Increment looping sarakkeen ensimmäiseltä riviltä viimeiselle riville.

 MsgBox "Tällä hetkellä iteroi solu " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop 

Tämä koodinpätkä käsittelee koodia, kasvattaa sitä jokaisen iteraation jälkeen ja näyttää sen tuloksen.

Lue lisää: Kuinka lisätä uusi rivi automaattisesti Excel-taulukkoon

2. Toteuta VBA-sovellus jokaisen rivin jokaisen solun läpikäymiseksi arvon mukaan.

Jos haluat läpikäydä jokainen solu jokaisella taulukon rivillä ja heittää paluuarvona soluissa olevan arvon. , niin tämä osio auttaa sinua selvittämään, miten se tehdään käyttämällä apuna VBA Excel.

Voit tehdä sen ListObject ja DataBodyRange ominaisuus VBA Näytämme sinulle makrokoodin sekä objektin että ominaisuuden kanssa.

2.1. ListObjectin avulla

Vaiheet käydä läpi jokainen solu jokaisella taulukon rivillä solun arvon mukaan ListObjectin avulla. osoitteessa VBA Excel on esitetty alla.

Vaiheet:

  • Samalla tavalla kuin ennenkin, avaa Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Sitten koodiikkunassa, kopioi seuraava koodi ja liitä se.
 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 

Koodisi on nyt valmis ajettavaksi.

  • Sen jälkeen, Suorita makroa, kuten näytimme sinulle edellä olevassa osassa. Tulos näkyy alla olevassa kuvassa.

Siellä on pop-up MsgBox näyttämällä sinulle kunkin rivin jokaisen solun arvo Excel-taulukosta.

VBA-koodin selitys

 Dim iListRow As ListRow Dim iCol As Range 

Määritä muuttujat.

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

Tämä koodinpätkä aloittaa ensin taulukon rivien läpikäynnin (" TblStudents " on taulukkomme nimi). Sitten syöttää sarakkeet jokaiselle riville. Sen jälkeen siirtää solun arvon MsgBoxiin. Sitten siirtyy seuraavaan sarakkeeseen. Kun iterointi on päättynyt yhden rivin kaikkien sarakkeiden läpi, siirtyy se seuraavalle riville ja jatkaa iterointiprosessia viimeiseen riviin asti.

2.2 DataBodyRange-ominaisuuden avulla

Jos haluat tarkentaa taulukosta poimittuja tietoja, voit käyttää komentoa DataBodyRange ominaisuus ListObject . DataBodyRange ominaisuus heittää sinulle tuloksen, joka sisältää listan otsikkorivin ja insert-rivin välisen alueen.

Vaiheet, miten voit käydä läpi jokainen solu jokaisella taulukon rivillä solun arvon mukaan DataBodyRange-luokan avulla. osoitteessa VBA Excel on esitetty alla.

Vaiheet:

  • Kuten edellä on esitetty, avoin Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Sitten, kopioi seuraava koodi ja liitä se koodiikkunaan.
 Sub LoopThroughRowsByRange() Dim iRange As Range For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange End Sub 

Koodisi on nyt valmis ajettavaksi.

  • Myöhemmin, Suorita makro ja katso seuraava gif nähdäksesi tulosteen.

Siellä on pop-up MsgBox näyttämällä sinulle kunkin rivin jokaisen solun arvo Excel-taulukosta.

VBA-koodin selitys

 Dim iRange As Range 

Määritä muuttuja.

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

Tämä koodinpätkä aloittaa ensin taulukon rivien läpikäynnin (" TblStdnt " on taulukkomme nimi) ja palauttaa arvoalueen lukuun ottamatta taulukon otsikkoriviä. Sitten välittää alueen arvon MsgBoxiin. Sitten se siirtyy seuraavalle riville poimimaan alueen ja jatkaa iterointiprosessia viimeiseen riviin asti.

3. Sovelletaan VBA-makroa rivien toistamiseen yhdistämällä sarakkeita Excelissä.

Tässä osassa näytetään, miten Silmukka taulukon rivien läpi yhdistämällä sarakkeet ensimmäiseen sarakkeeseen. Excelissä olevasta tietokokonaisuudestasi.

Esimerkiksi tietokokonaisuutemme osalta käymme ensin läpi seuraavat asiat John solussa B5 ja 101 solussa C5 ketjuttamalla ne ja sen jälkeen iteroimalla läpi John solussa B5 ja 89 solussa D5 liittämällä ne yhteen rivi 5 .

Näytämme sinulle, miten voit tehdä sen seuraavilla tavoilla VBA makro Excelissä.

Vaiheet:

  • Aluksi avataan Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Toiseksi, koodiikkunassa, kopioi seuraava koodi ja liitä se.
 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 

Koodisi on nyt valmis ajettavaksi.

  • Kolmanneksi, Suorita Katso tulosta alla olevasta kuvasta.

Siellä on pop-up MsgBox näyttämällä sinulle ensimmäisen ja toisen sarakkeen solujen yhteenlaskettu arvo. ( John solussa B5 alkaen Colum B ja 101 sarakkeen C solussa C5 ) ja sitten ensimmäisen ja kolmannen sarakkeen solujen yhteenlaskettu arvo. ( John solussa B5 alkaen Colum B ja 89 sarakkeen D5 solussa D ) rivi numero 5 Ja tämä ketjutus jatkuu, kunnes taulukon viimeinen rivi on saavutettu.

VBA-koodin selitys

 Dim iRange As Range Dim iValue As String 

Määritä muuttuja.

 Kanssa ActiveSheet.ListObjects("TblConcatenate") 

Tämän jälkeen koodi valitsee taulukon aktiiviselta arkilta (" TblConcatenate " taulukon nimessä).

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

Tämän jälkeen alkaa iterointi jokaisen rivin kohdalla lukuun ottamatta sarakkeen otsikkoa. Jos iterointi löytää vastaavuuden sarakkeen otsikon ja rivien väliseltä alueelta, se tallentaa arvon tiedostoon iValue muuttuja.

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

Jos edellä mainittu ehto ei täyty, koodi heittää arvon MsgBoxiin ja lopettaa ehdon. Sen jälkeen se siirtyy silmukoimaan toiseen alueeseen ja jatkaa iterointia loppuriville asti. Kun se saavuttaa loppurivin, makro lopettaa koodin suorituksen.

4. Upota makro, jolla toistetaan rivejä yhdistämällä kaikki Excel-taulukon sarakkeet yhteen.

Tässä jaksossa opimme, miten yhdistetään kaikki kunkin rivin sarakkeet. tietokokonaisuudessa, jossa on VBA makro Excelissä.

Vaiheet tämän suorittamiseksi on esitetty alla.

Vaiheet:

  • Ensinnäkin, avaa Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Sitten, kopioi seuraava koodi ja liitä se koodiikkunaan.
 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 

Koodisi on nyt valmis ajettavaksi.

  • Seuraava, Suorita makrokoodi.

Kuten yllä olevasta gif-kuvasta näkyy, on olemassa ponnahdusikkuna. MsgBox näyttämällä sinulle jokaisen rivin kaikkien sarakkeiden yhteenlaskettu arvo. Excel-taulukon taulukosta.

VBA-koodin selitys

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

Määritä muuttujat.

 Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") 

Aseta arkin nimi, jonka kanssa työskentelemme (" ConcatenatingAllCol " on työkirjan arkin nimi).

 Set iObj = iSheet.ListObjects("TblConcatenateAll") 

Määritä taulukon nimi, jonka kanssa työskentelemme (" TblConcatenateAll " on tietokantamme taulukon nimi).

 For Each iRow In iObj.ListRows -rivit 

Aloittaa iteraation taulukon jokaisen rivin läpi.

 For Each iCol In iObj.ListColumns -sarakkeet 

Käynnistää iteraation taulukon jokaisen rivin jokaisen sarakkeen läpi.

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

Tallentaa tuloksen leikkaamalla kunkin rivin kunkin sarakkeen arvot. Kun kaikki kunkin rivin sarakkeet on käyty läpi, se siirtää tuloksen MsgBoxiin. Sitten se aloittaa uudelleen silmukan seuraavalla rivillä ja jatkaa silmukan käyttöä, kunnes se saavuttaa taulukon viimeisen rivin.

Lue lisää: Miten lajitella useita taulukon sarakkeita Excel VBA: lla (2 menetelmää)

5. Lopeta iterointi, jos arvo löydetään silmukoimalla taulukon rivejä VBA-makrolla.

Oletetaan, että haluat silmukka läpi rivien taulukon on ja lopettaa silmukointi, kun se löytää tietyn arvon. Voit tehdä sen yksinkertaisella makrokoodilla.

Opetellaan, miten se tehdään VBA Excelissä.

Vaiheet:

  • Aluksi avataan Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Sitten koodiikkunassa, kopioi seuraava koodi ja liitä se.
 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 

Koodisi on nyt valmis ajettavaksi.

  • Myöhemmin, Suorita makro.
  • Se käynnistää silmukan ja pysäyttää sen, kun se löytää tietyn arvon. (" Edge ") alueella ja heittää tuloksena on MsgBox .

Kuten yllä olevasta kuvasta näkyy, ponnahdusikkunassa on MsgBox, jossa näytetään sinulle solun osoite, $B$10 , josta löysimme määritetyn arvon, " Edge " .

VBA-koodin selitys

 Dim iData As Range 

Määritä muuttuja.

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

Tämä koodinpätkä käy läpi rivit 1-15. Jos se löytää tietyn sanan" Edge ", niin se siirtää tuloksen sen solun osoitteen kanssa, jossa sana on. Se jatkaa tätä, kunnes se on skannannut kaikki tiedot riveiltä 1-15 etsiessään sanaa.

Lue lisää: Rivien ja sarakkeiden lisääminen tai poistaminen Excel-taulukosta

6. VBA-silmukka jokaisen rivin läpi ja tietyn arvon värittäminen Excelissä

Entä jos et halua heittää määritetyn arvon soluosoitetta MsgBoxiin? Voit halutessasi käyttää seuraavia tapoja värittää solun, jossa arvo on jota etsit.

Opetellaan, miten se tehdään VBA makro.

Vaiheet:

  • Samalla tavalla kuin ennenkin, avaa Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Sitten, kopioi seuraava koodi ja liitä se koodiikkunaan.
 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 

Koodisi on nyt valmis ajettavaksi.

  • Sen jälkeen, Suorita makro.
  • Se käynnistää silmukan ja lopettaa sen, kun se löytää tietyn arvon (" Edge ") alueella ja väritä solu kanssa ColourIndex jonka annoit koodissa.

Kuten yllä olevasta kuvasta näkyy, C B10 , josta löysimme määritetyn arvon, " Edge " on värillinen koodin suorittamisen jälkeen.

VBA-koodin selitys

 Dim iData As Range 

Määritä muuttuja.

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

Tämä koodinpätkä käy läpi rivit 1-15. Jos se löytää tietyn sanan" Edge ", niin se värittää solun, jossa sana on. Se jatkaa tätä, kunnes se on skannannut kaikki tiedot riveiltä 1-15 etsiessään sanaa.

Lue lisää: Kuinka käyttää VLOOKUP-taulukkoa, joka perustuu solun arvoon Excelissä

Samanlaisia lukemia

  • Onko TABLE-funktio olemassa Excelissä?
  • Taulukon muuntaminen luetteloksi Excelissä (3 nopeaa tapaa)
  • Muunna alue taulukoksi Excelissä (5 helppoa menetelmää)
  • Käytä kaavaa Excel-taulukossa tehokkaasti (4 esimerkkiä)
  • Excel-taulukon nimi: Kaikki mitä sinun tarvitsee tietää

7. VBA:n käyttöönotto jokaisen rivin läpikäymiseen ja jokaisen parittoman rivin värittämiseen Excelissä

Edellisessä osiossa opimme, miten värjätä solu, jossa on tietty arvo. Tässä osiossa opimme, miten voidaan käy läpi jokaisen taulukon rivin ja värittää jokaisen parittoman rivin. kanssa VBA makro Excelissä.

Prosessin suorittamiseen tarvittavat vaiheet kuvataan jäljempänä.

Vaiheet:

  • Kuten edellä on esitetty, avoin Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Sitten, kopioi seuraava koodi ja liitä se koodiikkunaan.
 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 

Koodisi on nyt valmis ajettavaksi.

  • Nyt, Suorita makro ja katso seuraava kuva nähdäksesi tulosteen.

Kaikki parittomat rivit ovat värillisiä. sen jälkeen, kun kaikki työarkin taulukossa olevat rivit on käyty läpi.

VBA-koodin selitys

 Dim iRow As Long 

Määritä muuttuja.

 With Range("B4").CurrentRegion kanssa 

Määrittele alue, jonka kanssa työskentelemme.

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

Tämä koodin osa viittaa kaikkien rivien iteraatioon alkaen nykyisen rivin seuraavasta rivistä, B4 Jos rivien numeroiden jakamisesta kahdella saatu mod on yhtä suuri kuin palautettu rivin numero, joka on tallennettu kokonaislukutyyppiin, tämä koodi värittää kaikki laskennan avulla poimitut rivit koodissa annetulla väri-indeksillä. Se jatkaa kaikkien rivien läpikäyntiä, kunnes se saavuttaa alueen lopun.

8. VBA:n toteuttaminen rivejä silmukoimalla ja värittämällä kaikki parilliset rivit Excelissä.

Edellisessä jaksossa opimme, miten värjätä taulukon jokainen pariton rivi. Tässä jaksossa opimme, miten käy läpi jokaisen taulukon rivin ja värittää jokaisen parillisen rivin. VBA-makroilla Excelissä.

Prosessin toteuttamiseen liittyviä vaiheita käsitellään jäljempänä.

Vaiheet:

  • Ensinnäkin, avaa Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Sitten, kopioi seuraava koodi ja liitä se koodiikkunaan.
 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 

Koodisi on nyt valmis ajettavaksi.

  • Seuraava, Suorita makro ja katso seuraava kuva nähdäksesi tuloksen.

Kaikki parilliset rivit ovat värillisiä sen jälkeen, kun kaikki työarkin taulukossa olevat rivit on käyty läpi.

VBA-koodin selitys

 Dim iRow As Long 

Määritä muuttuja.

 With Range("B4").CurrentRegion kanssa 

Määrittele alue, jolla työskentelemme.

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

Tämä koodinpätkä aloittaa iteroinnin kolmen rivin jälkeen nykyisestä rivistä, B4 Se värittää sen ensin, lisää rivien lukumäärää kahdella ja jatkaa värittämistä, kunnes se saavuttaa tietokokonaisuuden viimeisen rivin.

9. Sovelletaan makroa rivien toistamiseen, kunnes Excelissä on tyhjä solu.

Jos haluat, että koodisi toimii kuten se toimii läpikäydä kaikki taulukon rivit ja pysähtyä, kun se saavuttaa tyhjän solun. Voit suorittaa kyseisen tehtävän sekä komennolla FOR-silmukka ja Do-Until-silmukka Excelissä VBA .

9.1 FOR-silmukalla

Vaiheet Silmukka läpi taulukon rivien kunnes tyhjä solu FOR Loopilla osoitteessa VBA Excel on esitetty alla.

Vaiheet:

  • Aluksi avataan Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Sen jälkeen, kopioi seuraava koodi ja liitä se koodiikkunaan.
 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 

Koodisi on nyt valmis ajettavaksi.

  • Sitten, Suorita makro ja tulos näkyy alla olevassa kuvassa.

Kun makro on suoritettu, se alkoi käydä läpi kaikki rivit taulukossa ja kun se on saavuttanut tyhjä solu, solu B8 , se pysäytti iteraation .

VBA-koodin selitys

 Dim x As Integer 

Määritä muuttuja.

 Application.ScreenUpdating = False (Väärin) 

Kytke näytön päivitystapahtuma pois päältä.

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

Tallenna kaikki rivit alkaen Solu B4 viimeiseen asti.

 Range("B4").Select 

Valitse Solu B4 .

 For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next Seuraava 

Tämä koodinpätkä aloittaa kaikkien rivien läpikäynnin. Kun se löytää riviltä tyhjän solun, se valitsee sen ja jatkaa rivien läpikäyntiä, kunnes se pääsee loppuun.

 Application.ScreenUpdating = True 

Ota näytön päivitystapahtuma käyttöön.

9.2. Do-Until-silmukan kanssa

Vaiheet silmukka läpi rivien kunnes tyhjä solu Do-Until-silmukalla osoitteessa VBA on esitetty jäljempänä.

Vaiheet:

  • Ensinnäkin, avaa Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Sitten, kopioi seuraava koodi ja liitä se koodiikkunaan.
 Sub DoUntilLoopThroughRowsUntilBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub 

Koodisi on nyt valmis ajettavaksi.

  • Myöhemmin, Suorita Tulos näkyy seuraavassa kuvassa.

Makron suorittamisen jälkeen se alkoi kaikkien rivien läpikäynti taulukossa ja kun se on saavuttanut tyhjä solu, solu B8 , se pysäytti iteraation .

VBA-koodin selitys

 Range("B4").Select 

Valitse solu, josta työskentelemme.

 Do Kunnes IsEmpty(ActiveCell) 

Käynnistää ja jatkaa toistoa, kunnes tyhjä solu löytyy.

 ActiveCell.Offset(1, 0).Select silmukka 

Kun riviltä löytyy tyhjä solu, valitse se ja lopeta iterointi.

10. VBA-makro, jolla toistetaan rivejä, kunnes Excelissä on useita tyhjiä soluja.

Edellisessä osassa opit, miten silmukka pysäytetään, kun tyhjä solu löytyy. Mutta entä jos et halua pysäyttää iteraatiota, ennen kuin löydetään useita tyhjiä soluja yhden sijasta.

Vaiheet silmukka läpi rivien kunnes useita tyhjiä soluja löytyvät taulukosta, jossa on VBA Excel on esitetty alla.

Vaiheet:

  • Ensinnäkin, avaa Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Sitten, kopioi seuraava koodi ja liitä se koodiikkunaan.
 Sub LoopThroughRowsUntilMultipleBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) ActiveCell.Offset(2, 0).Select Loop End Sub 

Koodisi on nyt valmis ajettavaksi.

  • Nyt, Suorita makro ja katso seuraava gif tuloste.

Kun makro on suoritettu, se ei pysähtynyt ensimmäiseen tyhjään soluun, soluun B8. Se pysähtyi, kun se löysi kaksi peräkkäistä tyhjää solua solussa B16. .

VBA-koodin selitys

 Range("B4").Select 

Valitse solu, josta työskentelemme.

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

Käynnistää ja jatkaa toistoa, kunnes kaksi peräkkäistä tyhjää solua löytyy.

 ActiveCell.Offset(2, 0).Select silmukka 

Kun kaksi peräkkäistä tyhjää solua löytyy, valitse se ja lopeta iteraatio.

11. Upota VBA silmukoimaan rivejä ketjuttamalla kaikki sarakkeet, kunnes ne ovat tyhjiä Excelissä.

Tässä osassa näytetään, miten käydä läpi kaikki taulukon rivit ja liittää kaikki sarakkeet yhteen, kunnes tyhjä solu tulee näkyviin löytyy VBA Excel.

Opetellaan, miten se tehdään VBA makro Excelissä.

Vaiheet:

  • Aluksi avataan Visual Basic Editor alkaen Kehittäjä välilehti ja Lisää a Moduuli koodiikkunassa.
  • Sitten, kopioi seuraava koodi ja liitä se koodiikkunaan.
 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 

Koodisi on nyt valmis ajettavaksi.

  • Myöhemmin, Suorita makro ja katso seuraava gif-tulos.

Kuten yllä olevasta gif-kuvasta näkyy, on olemassa ponnahdusikkuna. MsgBox näyttämällä sinulle jokaisen rivin kaikkien sarakkeiden yhteenlaskettu arvo. Excel-taulukon taulukosta. Mutta se on pysähtyi, kun se saavutti tyhjän solun .

VBA-koodin selitys

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

Määritä muuttujat.

 Set iSheet = Sheets("ConcatenatingAllColUntilBlank") 

Aseta arkin nimi, jonka kanssa työskentelemme (" ConcatenatingAllColUntilBlank " on työkirjan arkin nimi).

 iValue = Range("B4").CurrentRegion (Nykyinen alue) 

Määrittele alue, jolla työskentelemme.

 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 

Tämä koodinpätkä aloittaa silmukan matriisin kanssa. Se jatkaa silmukan tekemistä, kunnes se palauttaa matriisin suurimman alaindeksin ja ensimmäisen ulottuvuuden alarajan. Sitten se aloittaa iteraation, jossa se poimii toisen ulottuvuuden alarajan. Tämän jälkeen se siirtää kaikki poimitut arvot tiedostoon iResult muuttujaa yhdistämällä ne ja heittämällä tuloksen MsgBoxiin. Se jatkaa tätä, kunnes se löytää tyhjän solun.

Päätelmä

Lopuksi, tämä artikkeli osoitti sinulle 11 tehokasta menetelmää, miten voitte silmukka taulukon rivien läpi Excelissä VBA-makro Toivon, että tästä artikkelista on ollut teille paljon hyötyä, ja voitte vapaasti esittää aiheeseen liittyviä kysymyksiä.

Hugh West on erittäin kokenut Excel-kouluttaja ja analyytikko, jolla on yli 10 vuoden kokemus alalta. Hän on koulutukseltaan laskentatoimen ja rahoituksen kandidaatti sekä kauppatieteiden maisteri. Hughilla on intohimo opettamiseen, ja hän on kehittänyt ainutlaatuisen opetusmenetelmän, jota on helppo seurata ja ymmärtää. Hänen asiantuntemuksensa Excelistä on auttanut tuhansia opiskelijoita ja ammattilaisia ​​maailmanlaajuisesti parantamaan taitojaan ja menestymään urallaan. Blogissaan Hugh jakaa tietämyksensä maailman kanssa tarjoamalla ilmaisia ​​Excel-opetusohjelmia ja verkkokoulutusta auttaakseen yksilöitä ja yrityksiä saavuttamaan täyden potentiaalinsa.