VBA til að fara í gegnum töfluraðir í Excel (11 aðferðir)

  • Deildu Þessu
Hugh West

Þegar við erum með stórt gagnasafn í Excel vinnubókinni okkar, er stundum þægilegt ef við getum farið í gegnum línur til að draga út þær tilteknu niðurstöður sem við viljum fá. Innleiðing VBA er áhrifaríkasta, fljótlegasta og öruggasta aðferðin til að keyra hvaða aðgerð sem er í Excel. Í þessari grein munum við sýna þér 11 mismunandi aðferðir um hvernig á að lykka í gegnum töfluraðir í Excel með VBA fjölvi .

Hlaða niður vinnubók

Þú getur halað niður ókeypis Excel vinnubókinni héðan.

Lokaðu í gegnum töfluraðir með VBA.xlsm

11 aðferðir með VBA til að hringja í gegnum töflulínur í Excel

Eftir þessum hluta muntu læra hvernig á að lykkja í gegnum töfluraðir með 11 mismunandi aðferðum, eins og að lykkja í gegnum raðir þar til autt reit, lykkja í gegnum raðir þar til ákveðið gildi finnst, lykkja í gegnum raðir og lita ákveðinn reit o.s.frv. með VBA macro í Excel.

Hér að ofan er dæmið gagnasafn sem þessi grein mun fylgja til að lýsa aðferðunum.

1. Fella VBA inn í lykkju í gegnum hverja reit í hverri röð í töflu eftir tilvísunarnúmeri hólfs

Ef þú vilt lykka í gegnum hvern reit í hverri röð töflu í Excel vinnublaðinu þínu og fáðu frumutilvísunarnúmerið sem skilgildi , fylgdu síðan skrefunum sem fjallað er um hér að neðan.

Skref:

  • Í upphafi , ýttu á Alt + F11 á lyklaborðinu þínu eða farðubreytu.
8518

Þetta kóðastykki er hér til að fara í gegnum línur frá 1 til 15. Ef það finnur tiltekið orðið " Edge " þá litar það reitinn sem geymir orðið. Það heldur áfram að gera þetta þar til það lýkur að skanna í gegnum öll gögnin frá línum 1 til 15 í leitinni að orðinu.

Lesa meira: Hvernig á að nota VLOOKUP Table Array Byggt á Hólfgildi í Excel

Svipuð lestur

  • Er TABLE virkni til í Excel?
  • Hvernig á að umbreyta töflu í lista í Excel (3 fljótlegar leiðir)
  • Breyta bili í töflu í Excel (5 auðveldar aðferðir)
  • Notaðu formúlu í Excel töflu á áhrifaríkan hátt (með 4 dæmum)
  • Excel töfluheiti: Allt sem þú þarft að vita

7. Innleiða VBA til að hringja í gegnum hverja röð og lita hverja staka línu í Excel

Frá fyrri hlutanum höfum við lært hvernig á að lita reit sem hefur ákveðið gildi. Í þessum hluta munum við læra hvernig á að lykkja í gegnum hverja röð í töflu og lita allar stakar línur með VBA fjölva í Excel.

Skref til að framkvæma ferlið er lýst hér að neðan.

Skref:

  • Eins og áður hefur verið sýnt, opnaðu Visual Basic Editor frá Developer flipa og Settu inn einingu í kóðagluggann.
  • Síðan, afritaðu eftirfarandi kóða og límdu hann inn í kóðaglugganum.
4146

Kóðinn þinn er nú tilbúinn til að keyra.

  • Nú, Keyddu makróið og skoðaðu eftirfarandi mynd til að sjá úttakið.

Allar oðatölulínurnar eru litaðar eftir að hafa farið í gegnum allar línurnar sem eru í töflunni á vinnublaðinu.

VBA kóða skýring

3358

Skilgreindu breytuna.

3267

Tilgreindu svið sem við munum vinna með.

5390

Þessi hluti kóðans vísar til endurtekningar í gegnum allar línur, frá næstu línu í núverandi línu, B4 . Ef aðferðin við að deila línunúmerunum með 2 er jöfn skiluðu línunúmerinu sem er geymt í heiltölugerð, þá litar þessi kóði allar línurnar sem eru dregnar út með útreikningnum með litavísitölunni sem fylgir kóðanum. Það heldur áfram að hreyfast í gegnum allar raðir þar til það nær lok sviðsins.

8. Innleiða VBA til að fara í gegnum línur og lita allar jöfnar línur í Excel

Í fyrri hlutanum höfum við lært hvernig á að lita allar odda línur í töflu. Í þessum kafla munum við læra hvernig á að lykkja í gegnum hverja röð í töflu og lita hverja jöfnu röð með VBA fjölvi í Excel.

Fjallað er um skref til að framkvæma ferlið hér að neðan.

Skref:

  • Í fyrsta lagi skaltu opna Visual Basic Editor frá Developer flipanum og Insert Eining í kóðaglugganum.
  • Svo skaltu afrita eftirfarandi kóða og líma inn í kóðagluggann.
2421

Kóðinn þinn er nú tilbúinnkeyra.

  • Næst, Keyra makróið og skoða eftirfarandi mynd til að sjá niðurstöðuna.

Allar jafntölulínurnar eru litaðar eftir að hafa farið í gegnum allar línurnar sem eru í töflunni á vinnublaðinu.

VBA-kóðaskýring

3072

Tilgreindu breytuna.

8943

Tilgreindu sviðið sem við munum vinna með.

5649

Þessi kóði byrjar að endurtaka eftir þrjár línur frá núverandi röð, B4 . Það litar það fyrst og hækkar síðan röðina um 2 og heldur áfram að lita það þar til það nær síðustu línu gagnasafnsins.

9. Notaðu fjölva til að endurtaka í gegnum línur þar til tómt hólf er í Excel

Ef þú vilt að kóðinn þinn virki eins og hann mun lykkjast í gegnum allar raðir töflunnar og hætta þegar hann nær auðu hólfinu , þá er þessi hluti fyrir þig. Þú getur framkvæmt það verkefni bæði með FOR Loop og Do-Until Loop í Excel VBA .

9.1. Með FOR Loop

Skref til að lykkjast í gegnum línur í töflu þar til auður reiti með FOR Loop í VBA Excel eru gefin hér að neðan.

Skref:

  • Í fyrstu skaltu opna Visual Basic Editor frá Developer flipanum og Insert a Module í kóðaglugganum.
  • Eftir það afritaðu eftirfarandi kóða og límdu inn í kóðagluggann.
3092

Kóðinn þinn er nú tilbúinn til að keyra.

  • Þá Keyrðu makró og útkoman er sýnd í gifinu hér að neðan.

Eftir að hafa keyrt makróið byrjaði það að fara í gegnum allar línurnar í töflunni og þegar það náði auðu reitnum, klefi B8 , stöðvaði það endurtekninguna .

VBA kóða skýring

1940

Tilgreindu breytuna.

5191

Slökktu á skjáuppfærsluviðburðinum.

8523

Geymdu allar línur frá Hólf B4 þar til það síðasta.

5503

Veldu Hólf B4 .

1796

Þetta stykki af kóða byrjar að fara í gegnum allar línurnar. Þegar það finnur tóman reit í röð velur hann hann og heldur áfram að skanna línurnar þar til hann nær enda.

2891

Kveiktu á skjáuppfærsluviðburðinum.

9.2. Með Do-Until Loop

Skref til að lykkja í gegnum línur þar til auður reiti með Do-Until lykkju í VBA eru gefin hér að neðan.

Skref:

  • Í fyrsta lagi skaltu opna Visual Basic Editor frá Developer flipanum og Insert a Eining í kóðaglugganum.
  • Svo skaltu afrita eftirfarandi kóða og líma inn í kóðagluggann.
9601

Kóðinn þinn er nú tilbúinn til að keyra.

  • Síðar, Keyrðu fjölva. Niðurstaðan er sýnd í eftirfarandi gif.

Eftir að hafa keyrt makróið byrjaði það að fara í gegnum allar línurnar í töflunni og einu sinni það náði auða reitnum, klefi B8 , það stöðvaði endurtekninguna .

VBA kóðaSkýring

4902

Veldu hólfið sem við munum vinna úr.

4476

Byrjar og heldur áfram að hringja þar til tómt hólf finnst.

3935

Þegar tómt hólf er fannst í röð, veldu það síðan og stöðvaðu endurtekninguna.

10. VBA Macro til að endurtaka í gegnum raðir þar til margar auðar frumur eru í Excel

Í fyrri hlutanum hefurðu lært hvernig á að stöðva lykkjuna þegar tómt hólf finnst. En hvað ef þú vilt ekki stöðva endurtekninguna fyrr en margar auðar hólfur finnast í stað þess að aðeins einn.

Skrefin til að lykkjast í gegnum raðir þar til margar auðar reitur finnast í töflu með VBA Excel eru sýndar hér að neðan.

Skref:

  • Í fyrsta lagi skaltu opna Visual Basic Editor frá Developer flipann og Settu inn Module í kóðagluggann.
  • Síðan, afritaðu eftirfarandi kóða og líma það inn í kóðagluggann.
2593

Kóðinn þinn er nú tilbúinn til að keyra.

  • Nú, Keyrðu makróið og sjáðu eftirfarandi gif fyrir úttakið.

Eftir að hafa keyrt makróið stoppaði það ekki á fyrsta auða reiturinn, klefi B8 . Það hætti þegar það fann tveir auðir reiti í röð á reit B16 .

VBA kóða skýring

7000

Veldu reitinn sem við munum vinna út frá.

3392

Byrjar og heldur áfram í lykkju þar til tvær tómar reiti í röð finnast.

3135

Þegar tvær tómar einingar í röð finnast, þáveldu það og stöðvaðu endurtekninguna.

11. Fella VBA inn í lykkju í gegnum línur með því að sameina alla dálka þar til auðir eru í Excel

Þessi hluti mun sýna þér hvernig á að lykkja í gegnum allar línur í töflu og sameina alla dálka þar til autt reit er að finna með VBA Excel.

Við skulum læra hvernig á að gera það með VBA fjölva í Excel.

Skref:

  • Fyrst skaltu opna Visual Basic Editor á flipanum Developer og Setja inn module í kóðaglugganum.
  • Svo skaltu afrita eftirfarandi kóða og líma inn í kóðagluggann.
1820

Kóðinn þinn er nú tilbúinn til að keyra.

  • Síðar, Keyrðu makróið og sjáðu eftirfarandi gif fyrir niðurstöðuna.

Eins og þú sérð af ofangreindu gifinu er að það er sprettigluggi MsgBox sem sýnir þér sambundið gildi allra dálka sem eru í hverjum röð úr töflunni á Excel vinnublaðinu þínu. En það hætti þegar það náði auða reitnum .

VBA kóða skýring

3002

Skilgreindu breyturnar.

2332

Stillið nafn blaðsins sem við munum vinna með (" ConcatenatingAllColUntilBlank " er blaðnafnið í vinnubókinni).

2843

Skilgreindu svið sem við munum vinna með.

6246

Þetta stykki af kóða byrjar lykkjuna með fylkinu. Það heldur áfram í lykkju þar til það skilar stærstu undirskrift fylkisins og neðri mörkumfyrstu vídd. Síðan fer það í endurtekninguna að draga út neðri mörk annarrar víddar. Eftir það sendir það öll útdregin gildi í iResult breytunni með því að sameina þau og henda niðurstöðunni í MsgBox. Það heldur áfram að gera það þar til það finnur tóman reit.

Niðurstaða

Til að lokum sýndi þessi grein þér 11 árangursríkar aðferðir til að lykkja í gegnum línur af töflu í Excel með VBA fjölvi . Ég vona að þessi grein hafi verið þér mjög gagnleg. Ekki hika við að spyrja spurninga varðandi efnið.

í flipann Hönnuði -> Visual Basictil að opna Visual Basic Editor.

  • Næst, í sprettiglugganum, frá valmyndarstiku, smelltu á Insert -> Module .

  • Svo skaltu afrita eftirfarandi kóða og líma í kóðann glugga.
3455

Kóðinn þinn er nú tilbúinn til að keyra.

  • Nú skaltu ýta á F5 á lyklaborð eða á valmyndastikunni veldu Run -> Keyra Sub/UserForm . Þú getur líka bara smellt á litla spilunartáknið í undirvalmyndastikunni til að keyra makróið.

  • Eða til að sjónrænt vitni og berðu saman gagnasafnið og niðurstöðuna, þú getur vistað kóðann og farið aftur á vinnublaðið sem þú vilt.
  • Þaðan geturðu smellt á Macros á Developer flipanum, veljið Macro name, og smelltu síðan á Run .

Eftir árangursríka keyrslu kóða skaltu skoða gifið hér að ofan til að sjá niðurstöðuna. Það mun birtast sprettigluggi MsgBox sem sýnir þér tilvísunarnúmer hólfs í hverri línu í hverri röð úr töflunni í Excel blaðinu þínu.

VBA kóða skýring

5743

Til að fá síðasta röð númer í töflunni með því að leita í dálki B.

6978

Settu línu númer 4, þaðan sem gögnin okkar byrja.

FirstColumn = 2

Til að lykkja úr fyrstu röð.

3141

Stilltu dálk númer 2, þaðan sem gögnin okkar byrja.

6023

Byrjaðu að hringja í gegnum línur til að fá síðustudálknúmer með því að meta núverandi línu þar til í síðustu línu.

4573

Stækka með lykkju á dálknum frá fyrstu línu fram í síðustu línu.

7883

Þessi kóðahluti vinnur að því að vinna, hækkar eftir hverja endurtekningu og birtu niðurstöðu kóðans.

Lesa meira: Hvernig á að bæta við nýrri línu sjálfkrafa í Excel-töflu

2 . Innleiða VBA til að lykkja í gegnum hvern reit í hverri röð eftir gildi

Ef þú vilt lykka í gegnum hvern reit í hverri röð töflu og henda gildinu sem er í reitunum sem skilgildi , þá mun þessi hluti hjálpa þér að finna út hvernig á að gera það með VBA Excel.

Þú getur gert það með ListObject og með DataBodyRange eiginleiki VBA . Við munum sýna þér makrókóðann með bæði hlutnum og eigninni.

2.1. Með ListObject

Skrefin til að lykkjast í gegnum hverja reit í hverri röð töflu eftir reitgildi með ListObject í VBA Excel eru gefin hér að neðan.

Skref:

  • Sömu leið og áður, opnaðu Visual Basic Editor frá Developer flipanum og Settu inn einingu í kóðagluggann.
  • Síðan, í kóðaglugganum, afritaðu eftirfarandi kóða og límdu það.
9618

Kóðinn þinn er nú tilbúinn til að keyra.

  • Eftir það Keyrðu fjölva eins og við sýndum þér í hlutanum hér að ofan. Niðurstaðan er sýnd í gifinuhér að neðan.

Það mun birtast sprettigluggi MsgBox sem sýnir þér gildið sem hver hólfi ber úr hverri röð úr töflunni í Excel blaðinu þínu.

VBA kóða skýring

5285

Tilgreindu breyturnar.

4105

Þetta stykki af kóða byrjar fyrst að fara í gegnum línur í töflunni („ TblNemendur “ er töfluheitið okkar). Færir síðan dálka fyrir hverja línu. Eftir það, sendu gildi frumunnar í MsgBox. Farðu síðan í næsta dálk. Eftir að hafa lokið endurtekningu í gegnum alla dálka einnar línu, fer það í næstu línu og heldur endurtekningarferlinu áfram þar til í síðustu línu.

2.2. Með DataBodyRange eigninni

Til að vera nákvæmari með útdregnu gögnin úr töflunni geturðu notað DataBodyRange eiginleikann ListObject . DataBodyRange eignin mun henda þér niðurstöðunni sem inniheldur bilið frá listanum á milli hauslínunnar og innsetningarlínunnar.

Skrefin um hvernig þú getur lykkjað í gegnum hvern reit í hverri röð af töflu eftir frumugildi með DataBodyRange í VBA Excel eru gefin upp hér að neðan.

Skref:

  • Eins og sýnt er áður, opnaðu Visual Basic Editor á flipanum Developer og Settu inn module í kóðaglugganum.
  • Síðan , afritaðu eftirfarandi kóða og límdu hann inn í kóðagluggann.
9029

Kóðinn þinn er nú tilbúinn til að keyra.

  • Síðar, Keyddu makróið og skoðaðu eftirfarandi gif til að sjá úttakið.

Það verður sprettigluggi MsgBox sem sýnir þér gildið sem hver hólfi ber úr hverri röð úr töflunni í Excel blaðinu þínu.

VBA kóða skýring

5198

Skilgreindu breytuna.

1758

Þessi kóðahluti byrjar fyrst að fara í gegnum línur í töflunni („ TblStdnt “ er töfluheitið okkar) og skilar fjölda gilda sem eru ekki meðtalin hausaröð töflunnar. Sendu síðan gildi sviðsins í MsgBox. Síðan fer það í næstu línu til að draga út bilið og heldur endurtekningarferlinu áfram þar til í síðustu röð.

3. Notaðu VBA Macro til að endurtaka línur með því að sameina dálka í Excel

Þessi hluti mun sýna hvernig á að lykkja í gegnum línur í töflu með því að tengja dálkana saman við fyrsta dálkinn úr gagnasafninu þínu í Excel.

Til dæmis, fyrir gagnasafnið okkar, munum við fyrst endurtaka í gegnum John in Cell B5 og 101 in Cell C5 með því að sameina þau og síðan endurtaka í gegnum John í hólf B5 og 89 í hólf D5 með því að tengja þau saman úr röð 5 .

Við skulum sýna þér hvernig þú getur gert það með VBA fjölvi í Excel.

Skref:

  • Í fyrstu skaltu opna Visual Basic Editor frá 1>Hönnuði flipann og Settu inn einingu í kóðagluggann.
  • Í öðru lagi, í kóðaglugganum, afritaðu eftirfarandi kóðaog líma það.
9400

Kóðinn þinn er nú tilbúinn til að keyra.

  • Í þriðja lagi, Keyra makróið. Horfðu á gifið hér að neðan til að sjá niðurstöðuna.

Það mun birtast sprettigluggi MsgBox sem sýnir þér samtengda gildið af frumunum úr fyrsta og öðrum dálki ( Jóhannes í hólf B5 úr dálki B og 101 í hólf C5 úr dálki C ) og síðan sambundið gildi af frumunum úr fyrsta og þriðja dálki ( Jóhannes í hólf B5 úr dálki B og 89 í hólf D5 úr dálki D ) í röð númer 5 úr gagnasafninu þínu. Og þessi samtengingaraðgerð mun halda áfram þar til hún nær síðustu línu töflunnar.

VBA kóða skýring

2836

Tilgreindu breytuna.

2187

Þá velur kóðinn töfluna úr virka blaðinu (" TblConcatenate " í töfluheitinu okkar).

6799

Eftir það byrjarðu að endurtaka hverja línu að undanskildum hausnum á dálkinn. Ef endurtekningin finnur samsvörun á bilinu milli dálkhaussins og línanna þá geymir hún gildið í iValue breytunni.

4127

Ef ofangreint skilyrði er ekki uppfyllt, þá kóðinn kastar gildinu í MsgBox og klárar ástandið. Eftir það heldur það áfram í lykkju á öðru sviði og heldur áfram að endurtaka þar til í endalínunni. Þegar það er komið að endalínunni lýkur fjölvi keyrslu kóðans.

4. Fella inn Macro til að endurtakaí gegnum línur með því að sameina alla dálka í töflu í Excel

Í þessum hluta munum við læra hvernig á að tengja saman alla dálka sem hver röð inniheldur í gagnasafninu með VBA fjölvi í Excel.

Skrefin til að framkvæma sem eru sýnd hér að neðan.

Skref:

  • Í fyrsta lagi, opnaðu Visual Basic Editor frá Developer flipanum og Settu inn Module í kóðagluggann.
  • Síðan, afritaðu eftirfarandi kóða og límdu hann inn í kóðagluggann.
5208

Kóðinn þinn er nú tilbúinn til að keyra.

  • Næst, Keyra makrókóðann.

Eins og þú sérð af ofangreindu gifinu er að það er sprettigluggi MsgBox sem sýnir þér samruna gildi allra dálka sem eru í hverri röð úr töflunni á Excel vinnublaðinu þínu.

VBA kóða skýring

4010

Tilgreindu breyturnar.

3702

Stilltu blaðheitið sem við munum vinna með (" ConcatenatingAllCol " er blaðnafnið í vinnubókinni).

2355

De fínn töfluheitið sem við munum vinna með (" TblConcatenateAll " er töfluheitið í gagnasafninu okkar).

8433

Byrjar endurtekningu í gegnum hverja röð töflunnar.

4847

Byrjar endurtekningu í gegnum hvern dálk í hverri röð töflunnar.

6101

Geymdu niðurstöðuna með því að skera gildin sem hver dálkur í hverri línu ber. Eftir að hafa skannað í gegnum alla dálka sem eru í hverri röð fór það framhjániðurstöðu í MsgBox. Byrjar svo aftur að lykkja í næstu röð og heldur áfram að lykkja þar til hún nær síðustu röð töflunnar.

Lesa meira: Hvernig á að raða mörgum dálkum í töflu með Excel VBA (2 aðferðir)

5. Stöðva endurtekningu ef gildi fannst með því að fara í gegnum línur í töflu með VBA Macro

Segjum sem svo að þú viljir lykkja í gegnum línurnar í töflunni þinni og stöðva lykkjuna þegar það finnur ákveðið gildi . Þú getur gert það með einföldum makrókóða.

Við skulum læra hvernig á að gera það VBA í Excel.

Skref:

  • Í fyrstu skaltu opna Visual Basic Editor frá Developer flipanum og Setja inn Module í kóðaglugganum.
  • Þá, í kóðaglugganum, afritaðu eftirfarandi kóða og límdu hann.
2707

Kóðinn þinn er nú tilbúinn til að keyra .

  • Síðar, Keyra fjölvi.
  • Það mun ræsa lykkjuna og stöðva það þegar það finnur tiltekið gildi (" Edge ") á sviðinu og hendir niðurstöðunni í MsgBox .

Eins og þú sérð á myndinni hér að ofan er sprettigluggi MsgBox sem sýnir þér netfangið, $B$10 , þar sem við fundum tilgreint gildi, Edge .

VBA kóða skýring

3342

Tilgreindu breytu.

3005

Þetta kóðastykki er hér til að fara í gegnum línur frá 1 til 15. Ef það finnur tiltekið orð„ Edge “ þá sendir það niðurstöðuna með veffanginu sem geymir orðið. Það heldur áfram að gera þetta þar til það lýkur að skanna í gegnum öll gögnin frá línum 1 til 15 í leit að orðinu.

Lesa meira: Hvernig á að setja inn eða eyða línum og dálkum úr Excel töflu

6. VBA til að fara í gegnum hverja röð og lita tiltekið gildi í Excel

Hvað ef þú vilt ekki henda vistfangi tilgreinds gildis í MsgBox? Þú gætir viljað lita reitinn sem ber gildið sem þú ert að leita að.

Við skulum læra hvernig á að gera það með VBA fjölva.

Skref:

  • Sömu leið og áður, opnaðu Visual Basic Editor frá Developer flipanum og Insert a Eining í kóðaglugganum.
  • Svo skaltu afrita eftirfarandi kóða og líma inn í kóðagluggann.
9644

Kóðinn þinn er nú tilbúinn til að keyra.

  • Eftir það skaltu keyra fjölva.
  • Það mun ræsa lykkjuna og stöðva hana þegar það finnur tiltekið gildi (" Edge ") á sviðinu og lita reitinn með ColourIndex sem þú gafst upp í kóðanum.

Eins og þú sérð á myndinni hér að ofan, C ell B10 , þar sem við fundum tilgreint gildi, Edge “ er litað eftir keyrslu kóðans.

VBA kóða skýring

3189

Tilgreindu

Hugh West er mjög reyndur Excel þjálfari og sérfræðingur með yfir 10 ára reynslu í greininni. Hann er með BA gráðu í bókhaldi og fjármálum og meistaragráðu í viðskiptafræði. Hugh hefur ástríðu fyrir kennslu og hefur þróað einstaka kennsluaðferð sem auðvelt er að fylgja eftir og skilja. Sérfræðiþekking hans á Excel hefur hjálpað þúsundum nemenda og fagfólks um allan heim að bæta færni sína og skara fram úr í starfi. Í gegnum bloggið sitt deilir Hugh þekkingu sinni með heiminum og býður upp á ókeypis Excel námskeið og netþjálfun til að hjálpa einstaklingum og fyrirtækjum að ná fullum möguleikum.