VBA Medtem ko je zanka

VBA Čeprav je zanka pomemben in močan koncept, ki ste ga morda videli v večini programskih jezikov. Če boste ta koncept obvladali v okviru VBA, boste lahko pripravili zmogljive skripte, ki delujejo s podatki preglednice na popolnoma različne in priročne načine. V tem članku se pripravite na raziskovanje sveta različnih zank, skupaj z več primeri, ki vam bodo priskočili na pomoč.

Namen zanke Čeprav je ponovitev določenega bloka stavkov, pod pogojem, da je izpolnjen pogoj. Natančneje, medtem ko zanka ponavlja ustrezen stavek, medtem ko je pogoj True. Ko pogoj postane napačen (ne izpolnjuje), zanka preneha.

V Microsoft Excel VBA sta v bistvu dve vrsti zanke:

  • VBA Medtem-Wend zanka
  • VBA Do-while zanka

VBA while-Wend Loop obstaja za to, da je koda združljiva s starejšo različico kod. VBA Do-while je posodobljena različica while zanke, ki je bolj prožna in strukturirana v primerjavi s prejšnjo in jo priporoča Microsoftova skupnost.

Za vsak slučaj, se sprašujete, kaj pomeni Wend, je kratka oblika Čeprav konec in deluje enako.

Primeri VBA, medtem ko zanke

Potopimo se globoko v vodnik po korakih za različne vrste VBA, medtem ko zanke.

To predlogo VBA, medtem ko predlogo zanke Excel predvajate, lahko prenesete tukaj - VBA Predloga za zanko Excel

Primer # 1

VBA Medtem-Wend zanka

Sintaksa:

Vzemimo primer, da to vidimo na boljši način.

  • Določite podproces za ustvarjanje makra pod novim modulom.

Koda:

 Sub, medtem ko je Exx1 () konec sub 

  • Nastavite dve spremenljivki Število ena in Vsota nič.

Koda:

 Sub medtem ko je Exx1 () Število = 1 Vsota = 0 Končni Sub 

  • Nastavite čas za spremenljivko Število.

Koda:

 Sub medtem ko je Exx1 () število = 1 vsota = 0, medtem ko število <= 10 konec sub 

  • Dodajte izjave, ki bodo za to pogojene.

Koda:

 Sub medtem ko je Exx1 () število = 1 vsota = 0, medtem ko število <= 10 vsota = vsota + številka številka = številka + 1 konec pod 

  • Dodajte Debug.Print Sum, tako da lahko seštevek prvih 10 naravnih števil natisne eno za drugim v takojšnjem oknu.

Koda:

 Sub, medtem ko je Exx1 () število = 1 vsota = 0, medtem ko število <= 10 vsota = vsota + številka številka = številka + 1 odprava 

  • Končno zaključite zanko z izrazom Wend.

Koda:

 Sub, medtem ko je Exx1 () število = 1 vsota = 0, medtem ko število <= 10 vsota = vsota + številka številka = številka + 1 odprav. 

  • Za zagon te kode pritisnite F5 ali Run Button in si oglejte izhod.

V tej kodi je spremenljivka vsote nastavljena na nič. Torej vsakič, ko število povečamo za 1, dokler ne doseže 10 (z uporabo zanke), spremenljivka vsote doda prejšnjo vsoto s trenutno številko in jo prikaže pod vrstico Takojšnje okno za vrstico ali stopničko, ki jo lahko rečete.

Primer # 2

VBA Do-while zanka

Lo-Do-Loop, ko je stanje pred začetkom zanke preverjeno

Ob izvedbi zanke je možno dva načina.

  • Pogoj lahko dodate, preden se zanka začne (To je enako kot zanka while-Wend). Tukaj ne bi prišlo do ponovitve zanke, če bi stanje prvič spodletelo.
  • Za preverjanje lahko dodate pogoj na zadnji strani zanke. V tem primeru bo pred izpadom pogoja vsaj ena ponovitev zanke.

Sintaksa:

Vzemimo en primer, da bodo stvari bolj jasne.

  • Vstavite nov modul in določite nov pododdelek za definiranje makra.

Koda:

 Sub, medtem ko je Exx2 () konec sub 

  • Opredelite novo spremenljivko I kot celo število. In sproži vrednost na 1.

Koda:

 Sub medtem ko je Exx2 () Dim i Dim Integer i = 1 Končni pod 

  • Uporabite Do-while za dodajanje pogoja na začetku zanke.

Koda:

 Sub medtem ko je Exx2 () Dim i Dim Integer i = 1 Ali medtem, ko i <= 10 Končni Sub 

  • Dodajte izjave, ki jih je treba izvesti, dokler je pogoj resničen. V makro dodajte spodnjo vrstico kode.

Koda:

 Sub whileEx2 () Dim i Dim Integer i = 1 Naredi, medtem ko i <= 10 celic (i, 1) .Value = i * i Končaj Sub 

Ta stavek omogoča, da prva vrstica prvega stolpca shrani vrednost kvadrata.

  • Dodajte še en stavek, ki omogoča povečanje v i za 1 pri vsaki ponovitvi zanke.

Koda:

 Sub whileEx2 () Dim i Dim Integer i = 1 Ali medtem, ko i <= 10 celic (i, 1) .Value = i * ii = i + 1 konec zanke Sub 

  • Dokončajte to zanko tako, da na koncu kode dodate stavek Loop.

Oglejmo si rešitev te kode:

Za vrednosti i od 1 (prvotno i = 1) do 10 izračuna, i * i (tj. Vrednost kvadrata za vsako celo število vrednosti i) in jo vnese v vrstice 1 do 10 stolpca 1 (tj. Stolpec A) oz. . Izhod je nič drugega kot vrednosti kvadratov 1 do 10.

  • Zaženite to kodo s pritiskom na tipko F5 ali Run in poglejte izhod.

Videte lahko vrednosti kvadratov naravnih števil 1 do 10, ki so shranjene v vsaki celici posebej stolpca A.

Primer # 3

Lo-Do-Loop, ko se na koncu zanke preveri stanje

Sintaksa:

Poglejmo primer, kako videti zanko na boljši način.

  • Vstavite nov modul in določite nov podpostopki za shranjevanje makra.

Koda:

 Sub, medtem ko je Exx3 () konec Sub 

  • Določite novo celo število i enako kot v prejšnjem primeru in mu dodelite začetno vrednost.

Koda:

 Sub medtem ko je Exx3 () Dim i Dim Integer i = 1 Končni pod 

  • Uporabite pogoj Do, da dodate stavke, ki se bodo izvajali, dokler je pogoj resničen.

Koda:

 Sub whileEx3 () Dim i Dim Integer i = 1 Ali celice (i, 2) .Value = i * ii = i + 1 End Sub 

Priporočljivo je, da uporabite beli razmik (tipka Tab) kot vdolbino, prikazano v zgornji kodi, ki omogoča nemoteno delovanje kode in definira tudi dobro strukturo zapisa kode.

  • Uporabite zanko, medtem ko dodate pogoj, ki ga želite preveriti, za vsak stavek, ki ga želite izvršiti.

Koda:

 Sub whileEx3 () Dim i Dim Integer i = 1 Ali celice (i, 2) .Value = i * ii = i + 1 zanka, medtem ko i <= 10 End Sub 

  • Zaženite to kodo tako, da ročno pritisnete tipko F5 ali Run in si oglejte izhod.

Videli boste izhod, kot je prikazano na zgornji sliki.

Kako ta kodeks deluje v zaledju?

Sistem pomnoži vrednost i (od 1) do sebe in shrani v drugi stolpec (Celice (i, 2)) za vsako vrstico eno za drugo. Koda se ustavi izvršiti takoj, ko vrednost spremenljivke i doseže 10. Izhod je morda enak, kar logično pomeni, da obe kodi delujeta enako. Toda glavna razlika je v sestavljanju kode. V zadnjem primeru je bilo stanje že tam in sistem je vedel, do katere številke mora iti. Vendar pa sistem v tej kodi ne pozna stanja v času izvajanja stavkov in izvaja iteracijo eno za drugo. Dokler je pogoj napačen, je koda prenehala izvajati.

Stvari, ki si jih morate zapomniti o VBA, medtem ko zanke

  • Zanka Čeprav-Wend je zastarela in je le združljiva s starejšimi različicami kod. Namesto tega uporabite zanko Do-while.
  • Zanka Do-while je v primerjavi z zanko while-Wend bolj prilagodljiva in dobro strukturirana.
  • Loop do-while je mogoče uporabiti na dva načina, pri čemer lahko v enem primeru najprej dodate pogoj, ki ga želite preveriti, in nato dodate stavke, ki izpolnjujejo pogoj. Na drug način lahko najprej dodate stavke in kasneje dodate pogoj, ki ga je treba preveriti.
  • Vdolbine je priporočljivo uporabljati v zankah, tako da je koda bolj dinamična in lažje berljiva.

Priporočeni članki

To je vodnik za VBA Do while Loop. Tu smo razpravljali o tem, kako uporabljati Excel VBA Do while Loop, skupaj z nekaj praktičnimi primeri in naloženo predlogo Excela. Ogledate si lahko tudi druge naše predlagane članke -

  1. Kako uporabljati FIND funkcijo v Excelu?
  2. Kako uporabljati funkcijo VBA TRIM?
  3. VBA Arrays | Celotna vadnica
  4. Kako uporabljati VBA Select Case?

Kategorija: