Loops gudaha VBA

Waxaa jira xaalado marka barnaamijka VBA looga baahan yahay inuu sameeyo ficil isku mid ah dhowr jeer oo isku xigta (taas oo ah, ku celi kood isku mid ah dhowr jeer). Tan waxaa lagu samayn karaa iyadoo la isticmaalayo VBA loops.

Loops VBA waxaa ka mid ah:

Marka xigta, waxaan si dhow u eegi doonaa mid kasta oo wareegyadan ah.

Loop Operator ee Visual Basic

Qaab dhismeedka hawlwadeenka loop The Visual Basic waxa loo habayn karaa mid ka mid ah laba nooc: sida loop Wixii... Xiga ama sida loop Mid walba.

Wareegta "For… Xiga"

Cycle Wixii... Xiga isticmaala doorsoome si isdaba joog ah uga qaadanaya qiyamka xad la bixiyay. Isbeddel kasta oo ku yimaadda qiimaha doorsoomayaasha, ficillada ku jira jidhka wareegga ayaa la sameeyaa. Tani way fududahay in laga fahmo tusaale fudud:

Wixii i = 1 ilaa 10 Wadarta = Wadarta + iArray(i) Xiga i

Loop-kan fudud Wixii... Xiga doorsoome ayaa la isticmaalaa i, kaas oo si isdaba joog ah u qaada qiyamka 1, 2, 3, … 10, iyo mid kasta oo ka mid ah qiyamkan, code VBA gudaha loop-ka waa la fuliyay. Sidaa darteed, loop-kani waxa uu soo koobayaa curiyayaasha shaxda. iArray doorsoome Wadarta Guud.

Tusaalaha kore, kordhinta wareegga lama cayimin, si loo kordhiyo doorsoomaha i laga bilaabo 1 ilaa 10, heerka caadiga ah waa koror 1Si kastaba ha ahaatee, xaaladaha qaarkood waa lagama maarmaan in la isticmaalo qiyamka kordhinta kala duwan ee loop. Tan waxaa lagu samayn karaa iyadoo la isticmaalayo ereyga muhiimka ah Stepsida ku cad tusaalahan fudud ee soo socda.

Wixii d = 0 ilaa 10 Tallaabo 0.1 dTotal = dTotal + d Xiga d

Maadaama tusaalaha kore, tillaabada kordhintu waxay la mid tahay 0.1, ka dibna doorsoomiyaha dTotal Ku celcelin kasta oo wareeggu wuxuu qaadanayaa qiyamka 0.0, 0.1, 0.2, 0.3,… 9.9, 10.0.

Si loo go'aamiyo tallaabada loop ee VBA, waxaad isticmaali kartaa qiime taban, tusaale ahaan, sidan oo kale:

Wixii i = 10 Ilaa 1 Tallaabo -1 iArray(i) = i Xiga i

Halkan kororku waa -1, sidaas darteed doorsoomayaasha i iyadoo ku celcelin kasta oo wareeg ah uu qaadanayo qiyamka 10, 9, 8, … 1.

Loop "Qof walba"

Cycle Mid walba oo la mid ah wareegga Wixii... Xiga, laakiin halkii aad ka sheegi lahayd isku xigxiga qiyamka doorsoomaha counter, loop Mid walba wuxuu sameeyaa go'an ficil ah shay kasta oo ka mid ah kooxda walxaha la cayimay. Tusaalaha soo socda, adoo isticmaalaya loop Mid walba Wuxuu tiriyaa dhammaan xaashida buug-shaqeedka Excel ee hadda:

Dim wSheet Sida Xaashida shaqada ee wsheet kasta oo ku jira xaashida shaqada MsgBox "Найден лист:" & wSheet. Magaca xiga wSheet

Loop hadalka joojinta "ka bax"

Hawlwadeennada U bax loo isticmaalo joojinta wareegga. Isla marka qoraalkan uu la kulmo koodka, barnaamijku wuxuu soo afjarayaa fulinta wareegga wuxuuna u gudbayaa fulinta weedhaha ku jira koodka isla markiiba ka dib wareeggan. Tan waxa loo isticmaali karaa, tusaale ahaan, in lagu raadiyo qiime gaar ah oo isku duba rid ah. Si tan loo sameeyo, iyadoo la isticmaalayo loop, shay kasta oo ka mid ah shaxanka waa la sawiray. Isla marka la helo walxaha loo baahan yahay, looma baahna in la eego inta soo hartay - wareegga waa la gooyaa.

Codsiga hawlwadeenka U bax lagu muujiyey tusaalahan soo socda. Halkan loop-ku waxa uu ku celcelinayaa in ka badan 100 gelinta habaysan oo mid walba waxa uu la barbar dhigayaa qiimaha doorsoomiyaha dVal… Haddii kabriid la helo, markaas wareegga waa la joojinayaa:

Wixii i = 1 ilaa 100 Haddii dValues(i) = dVal ka dibna IndexVal = i Ka bixi Dhamaadka Haddi ku Xiga

The Do While Loop in Visual Basic

Cycle Samee inta fulinaya block of code ilaa inta shuruuda la cayimay la buuxinayo. Kuwa soo socdaa waa tusaale habraac Sub, kaas oo la isticmaalayo loop Samee inta Nambarada Fibonacci ee aan ka badnayn 1000 ayaa si xiriir ah loo soo bandhigay:

'Nidaamka hoose waxa ay soo saartaa lambarrada Fibonacci oo aan ka badnayn 1000 Sub Fibonacci() Dim i As Integer 'counter' si loo muujiyo booska curiyaha ee isku xigxiga Dim iFib As Integer 'wuxuu kaydiyaa qiimaha hadda ee isku xigxiga Dim iFib_Next Sida Integer 'ku kaydiso qiimaha xiga Isku xigxiga Dim iStep As Integer 'wuxuu kaydiyaa cabbirka kordhinta soo socota' bilaabi doorsoomayaasha i iyo iFib_Next i = 1 iFib_Next = 0 'Do Halka loop uu fulinayo ilaa qiimaha 'lambarka Fibonacci ee hadda jira uu ka weyn yahay 1000 Do Halka iFib_Next Haddii iFib_Next <1000 1 Kadib ' kiis gaar ah oo loogu talagalay curiyaha koowaad iStep = 1 iFib = 0 Haddii kale 'keydiso cabbirka kordhinta soo socota ka hor inta aanad dib u qorin 'qiimaha hadda ee taxanaha iStep = iFib iFib = iFib_Next End Haddii 'ku daabac lambarka Fibonacci hadda ee tiirka A ee xaashida shaqada ee firfircoon ee safka ku leh index i Cells(i, 1) .Value = iFib ' xisaabi lambarka Fibonacci ee soo socda oo ku kordhi tusaha booska curiyaha 1 iFib_Next = iFib + iStep i = i + 1 Loop End Sub

Tusaalaha la soo bandhigay, xaaladdu iFib_ Xiga <1000 la hubiyay bilawga wareegga Sidaa darteed, haddii qiimaha ugu horreeya iFib_ Xiga Haddii ay jiraan in ka badan 1000, markaa wareegga waligiis lama fulin.

Hab kale oo loo hirgeliyo loop Samee inta - xaaladdu ha dhigin bilowga, laakiin dhammaadka wareegga. Xaaladdan oo kale, wareegtada ayaa la fulin doonaa ugu yaraan hal mar, iyada oo aan loo eegin haddii shuruudda la daboolay.

Nidaam ahaan, wareeggan oo kale Samee inta iyadoo xaaladdu tahay in la hubiyo dhamaadka waxay u ekaan doontaa sidan:

Samee ... Loop Inta iFib_ Xiga <1000

Цикл "Samee Ilaa" в Visual Basic

Cycle Samee Ilaa aad ula mid ah wareegga Samee inta: block of code ee jirka wareegtada waa la fuliyaa marar badan ilaa inta la buuxinayo shuruuda la cayimay (natiijada hadalka shuruudda ah waa True). Habka soo socda Sub iyadoo la isticmaalayo wareeg Samee Ilaa ka soo saar qiyamka dhammaan unugyada tiirka A xaashida shaqada ilaa tiirka uu la kulmo unug madhan:

iRow = 1 Samee Ilaa Is-Madhan

Tusaalaha kore, xaaladdu Maqan yihiin ku yaal bilowga dhismaha Samee Ilaa, markaa wareegtada waa la fulin doonaa ugu yaraan hal mar haddii unugga ugu horreeya ee la qaaday aanu madhnayn.

Si kastaba ha ahaatee, sida ku cad tusaalooyinka loop Samee inta, xaaladaha qaarkood waxaa lagama maarmaan ah in loop la fuliyo ugu yaraan hal mar, iyadoon loo eegin natiijada bilowga ah ee tibaaxaha shuruudda ah. Xaaladdan oo kale, tibaaxaha shuruudda ah waa in la dhigaa dhammaadka wareegga, sida tan:

Samee ... Lasoco ilaa ay Madhan tahay (Uunugga (iRow, 1))

Leave a Reply