Loops ka VBA

Ho na le maemo ha lenaneo la VBA le hlokeha ho etsa sete e tšoanang ea liketso ka makhetlo a 'maloa ka tatellano (ke hore, pheta-pheta boloko bo tšoanang ba khoutu ka makhetlo a' maloa). Sena se ka etsoa ho sebelisa VBA loops.

Li-loops tsa VBA li kenyelletsa:

Ka mor'a moo, re tla shebisisa e 'ngoe le e 'ngoe ea lipotoloho tsena.

Bakeng sa Loop Operator ho Visual Basic

Sebopeho sa loop operator The ho Visual Basic e ka hlophisoa ka e 'ngoe ea mefuta e' meli: joalo ka lupu Bakeng sa… E latelang kapa joalo ka loop Bakeng sa E mong le e mong.

Baesekele "Bakeng sa ... E latelang"

Mokoloko Bakeng sa… E latelang e sebelisa phapang e nkang boleng ka tatellano ho tsoa mofuteng o fanoeng. Ka phetoho e 'ngoe le e' ngoe ea bohlokoa ba ho fetoha, liketso tse kentsoeng 'meleng oa potoloho li etsoa. Sena se bonolo ho se utloisisa ho latela mohlala o bonolo:

Bakeng sa ke = 1 Ho 10 Kakaretso = Kakaretso + iArray(i) E latelang ke

Ka lupu ena e bonolo Bakeng sa… E latelang feto-fetoha e sebedisoa i, e nkang litekanyetso ka tatellano 1, 2, 3, ... 10, 'me bakeng sa e' ngoe le e 'ngoe ea litekanyetso tsena, khoutu ea VBA e ka hare ho loop e etsoa. Ka hona, loop ena e akaretsa likarolo tsa sehlopha. iArray ka ho feto-fetoha Kakaretso.

Mohlala o ka holimo, "loop increment" ha e hlalosoe, kahoo ho eketsa phapang i ho tloha ho 1 ho isa ho 10, ea kamehla ke keketseho 1... Leha ho le joalo, maemong a mang hoa hlokahala ho sebelisa litekanyetso tse fapaneng tsa increment bakeng sa loop. Sena se ka etsoa ho sebelisa keyword Bohato bajoalokaha ho bontšitsoe mohlaleng o bonolo o latelang.

Bakeng sa d = 0 Ho isa ho 10 Mohato 0.1 dTotal = dTotal + d E latelang d

Ho tloha mohlaleng o ka holimo, mohato oa increment o behiloe ho lekana le 0.1, ebe ho fetoha dTotal bakeng sa ho pheta-pheta ha potoloho ho nka litekanyetso 0.0, 0.1, 0.2, 0.3,… 9.9, 10.0.

Ho tseba mohato oa loop ho VBA, o ka sebelisa boleng bo fosahetseng, mohlala, joalo ka:

Bakeng sa ke = 10 Ho 1 Mohato -1 iArray(i) = i Latelang ke

Ke ena increment ke ena -1, kahoo ho fetoha i Pheta e 'ngoe le e' ngoe ea potoloho e nka boleng 10, 9, 8, ... 1.

Loop "Bakeng sa E 'ngoe le e' ngoe"

Mokoloko Bakeng sa E mong le e mong e tshoanang le potoloho Bakeng sa… E latelang, empa sebakeng sa ho pheta-pheta ka tatellano ea boleng bakeng sa phapang ea counter, loop Bakeng sa E mong le e mong etsa sete ya diketso bakeng sa ntho ka nngwe sehlopheng se itseng sa dintho. Mohlala o latelang, ho sebelisa loop Bakeng sa E mong le e mong e thathamisa maqephe ohle bukeng ea mosebetsi ea Excel ea hajoale:

Fokotsa Leqephe e le Leqephe la Mosebetsi Bakeng sa Leqephe le leng le le leng ho Maqephe a Mosebetsi MsgBox "Найден лист: " & wSheet.Name Leqephe le Latelang

Polelo ea khatiso ea "Loop For"

Operator Tsoa Bakeng sa se sebedisoang ho sitisa potoloho. Hang ha polelo ena e kopana le khoutu, lenaneo le phethela ts'ebetsong ea loop mme le tsoela pele ho phethahatsa lipolelo tse ka khoutu hang ka mor'a loop ena. Sena se ka sebelisoa, ka mohlala, ho batla boleng bo itseng ka har'a sehlopha. Ho etsa sena, ho sebelisa loop, karolo ka 'ngoe ea sehlopha e hlahlojoa. Hang ha ntho e hlokahalang e fumanoa, ha ho hlokahale hore u shebe ka ho setseng - potoloho e sitisoa.

Sesebelisoa sa opereishene Tsoa Bakeng sa e bontšitsoeng mohlaleng o latelang. Mona loop e pheta likenyo tse fetang 100 mme e bapisa e 'ngoe le e' ngoe le boleng ba phapang. dVal… Haeba papali e fumaneha, loop e felisitsoe:

Bakeng sa i = 1 Ho ea ho 100 Haeba dValues(i) = dVal Joale IndexVal = Ke Tsoa Bakeng sa Qetello Haeba E Latelang

The Do While Loop in Visual Basic

Mokoloko Etsa nakoana e phethahatsa "block" ea khoutu ha feela boemo bo boletsoeng bo fihletsoe. Se latelang ke mohlala oa ts'ebetso Sehlooho, eo ho eona ho sebelisang loop Etsa nakoana Linomoro tsa Fibonacci tse sa feteng 1000 li hlahisoa ka tatellano:

'Sub process outputs linomoro tsa Fibonacci tse sa feteng 1000 Sub Fibonacci() Dim i As Integer' counter ho bontša boemo ba element ka tatellano Dim iFib As Integer 'boloka boleng ba hona joale ba tatellano Dim iFib_Next As Integer' boloka boleng bo latelang ea tatellano Dim iStep As Integer 'mabenkele a boholo ba increment e latelang' qala mefuta-futa i le iFib_Next i = 1 iFib_Next = 0 'Do While loop e tla phethahatsa ho fihlela boleng ba' nomoro ea hona joale ea Fibonacci e kholo ho feta 1000 Etsa Leha iFib_Next <1000 Haeba 1 Ebe 'special case for first element iStep = 1 iFib = 0 Else 'boloka boholo ba increment e latelang pele u ngola holimo' boleng ba hona joale ba tatellano iStep = iFib iFib = iFib_Next End If 'print the current Fibonacci number in column A of Leqephe la mosebetsi le sebetsang 'moleng le index i Cells(i, 1).Value = iFib' bala nomoro e latelang ea Fibonacci 'me u eketse index ea boemo ba element ka 1 iFib_Next = iFib + iStep i = i + 1 Loop End Sub

Mohlala o fanoeng, boemo iFib_Next <1000 e hlahlobiloeng qalong ea lupu. Ka hona, haeba boleng ba pele iFib_E latelang Haeba ho ne ho e-na le tse fetang 1000, joale loop e ne e ke ke ea etsoa.

Tsela e 'ngoe ea ho kenya ts'ebetso ea loop Etsa nakoana - beha boemo eseng qalong, empa qetellong ea lupu. Tabeng ena, loop e tla etsoa bonyane hang, ho sa tsotellehe hore na boemo bo fihlile.

Ka moralo, potoloho e joalo Etsa nakoana ka boemo bo tla hlahlojoa qetellong bo tla shebahala tjena:

Etsa ... Loop Ha u ntse u iFib_Next <1000

Цикл «Etsa ho fihlela» ho Visual Basic

Mokoloko Etsa Ho fihlela e tshoanang haholo le sedikadiko Etsa nakoana: "block of code" 'meleng oa loop e etsoa khafetsa ho fihlela boemo bo boletsoeng bo finyelloa (sephetho sa polelo ea maemo ke Ke 'nete hore). Mokhoa o latelang Sehlooho ho sebedisa sedikadikwe Etsa Ho fihlela fumana boleng ho tsoa liseleng tsohle ka kholomong A Leqephe la mosebetsi ho fihlela kholomo e kopana le sele e se nang letho:

iRow = 1 Etsa Ho fihlela IsEmpty(Liseli(iRow, 1)) 'Boleng ba sele ea hona joale bo bolokoa ho sehlopha sa dCellValues ​​dCellValues(iRow) = Cells(iRow, 1).Value iRow = iRow + 1 Loop

Mohlala o ka holimo, boemo IsEmpty(Lisele(iRow, 1)) e teng qalong ya sebopeho Etsa Ho fihlela, kahoo loop e tla etsoa bonyane hang haeba sele ea pele e nkiloeng e se na letho.

Leha ho le joalo, joalokaha ho bontšitsoe mehlaleng ea loop Etsa nakoana, maemong a mang ho hlokahala hore loop e phethoe bonyane hang, ho sa tsotellehe sephetho sa pele sa polelo e nang le maemo. Tabeng ena, polelo ea maemo e lokela ho behoa qetellong ea loop, ka tsela ena:

Etsa ... Loop Ho fihlela IsEmpty(Cells(iRow, 1))

Leave a Reply