Lowani mu VBA

Pali nthawi zina pomwe pulogalamu ya VBA ikufunika kuchita zinthu zomwezo kangapo motsatana (ndiko kuti, kubwereza code yomweyi kangapo). Izi zitha kuchitika pogwiritsa ntchito malupu a VBA.

VBA malupu akuphatikizapo:

Kenako, tiyang'ana mozama chilichonse mwazinthu izi.

Kwa Loop Operator mu Visual Basic

Mapangidwe a loop operator The mu Visual Basic itha kukonzedwa mwamitundu iwiri: ngati lupu Za… Kenako kapena ngati lupu Kwa Aliyense.

Kuzungulira “Kwa … Next”

Mphindi Za… Kenako amagwiritsa ntchito kusintha komwe kumatengera zinthu motsatizana kuchokera pagulu lomwe laperekedwa. Ndi kusintha kulikonse kwa mtengo wa kusintha, zochita zomwe zatsekedwa mu thupi la kuzungulira zimachitika. Izi ndizosavuta kumvetsetsa kuchokera ku chitsanzo chosavuta:

Pakuti ine = 1 mpaka 10 Total = Total + iArray(i) Next i

M'njira yosavuta iyi Za… Kenako variable amagwiritsidwa ntchito i, yomwe motsatizana imatenga zikhalidwe 1, 2, 3, ... 10, ndipo pa chilichonse mwazinthu izi, nambala ya VBA mkati mwa loop imachitidwa. Chifukwa chake, loop iyi imawerengera zinthu za gululo. iArray mu variable Total.

Muchitsanzo chomwe chili pamwambapa, kuwonjezereka kwa loop sikunatchulidwe, kotero kuti muwonjezere kusintha i kuchokera 1 mpaka 10, kusakhulupirika ndi increment 1... Komabe, nthawi zina ndikofunikira kugwiritsa ntchito mitundu yosiyana yowonjezereka ya loop. Izi zitha kuchitika pogwiritsa ntchito mawu osakira Khwereromonga momwe tawonetsera mu chitsanzo chosavuta chotsatirachi.

Kwa d = 0 Mpaka 10 Gawo 0.1 dTotal = dTotal + d Lotsatira d

Popeza mu chitsanzo pamwambapa, sitepe yowonjezereka imayikidwa mofanana ndi 0.1, kenako kusintha dTotal pa kubwereza kulikonse kwa kuzungulira kumatenga pamtengo 0.0, 0.1, 0.2, 0.3,… 9.9, 10.0.

Kuti mudziwe gawo lozungulira mu VBA, mutha kugwiritsa ntchito mtengo woyipa, mwachitsanzo, motere:

Pakuti i = 10 Kuti 1 Gawo -1 iArray(i) = i Next i

Apa pali kuwonjezeka -1, kotero kusintha i kubwerezabwereza kulikonse kumatengera mfundo 10, 9, 8, ... 1.

Lupu "Kwa Aliyense"

Mphindi Kwa Aliyense zofanana ndi kuzungulira Za… Kenako, koma m'malo mobwereza ndondomeko yamtengo wapatali, loop Kwa Aliyense amachita seti ya zochita pa chinthu chilichonse pagulu la zinthu zomwe zafotokozedwa. Mu chitsanzo chotsatira, kugwiritsa ntchito lupu Kwa Aliyense imatchula mapepala onse mu buku lamakono la Excel:

Dimani Weti Monga Tsamba Logwirira Ntchito Patsamba Lililonse mu Mapepala Ogwirira Ntchito MsgBox "Найден лист: " & wSheet.Name Next wSheet

Kusokoneza mawu akuti "Tulukani"

Woyendetsa Tulukani Kwa amagwiritsidwa ntchito kusokoneza kuzungulira. Mwamsanga pamene mawuwa akupezeka mu code, pulogalamuyo imamaliza kuchitidwa kwa loop ndikupita kukachita mawu omwe ali mu code mwamsanga pambuyo pa kuzungulira. Izi zitha kugwiritsidwa ntchito, mwachitsanzo, kufunafuna mtengo wina wake pamndandanda. Kuti muchite izi, pogwiritsa ntchito loop, chinthu chilichonse chamagulu chimafufuzidwa. Zomwe zimafunikira zikangopezeka, palibe chifukwa choyang'ana zina zonse - kuzungulirako kumasokonekera.

Pulogalamu ya opareshoni Tulukani Kwa zasonyezedwa mu chitsanzo chotsatirachi. Apa loop imabwereza zolembera zopitilira 100 ndikufanizira chilichonse ndi mtengo wakusintha. dVal… Ngati machesi apezeka, ndiye kuti kulupu kwatha:

Kwa ine = 1 Mpaka 100 Ngati dValues(i) = dVal Kenako IndexVal = Ndituluka Kuti Ndimalize Ngati Kenako i

The Do While Loop in Visual Basic

Mphindi Chitani nthawi imachita chipika cha code bola ngati zomwe zanenedwazo zakwaniritsidwa. Chotsatira ndi chitsanzo cha ndondomeko Sub, momwe mungagwiritsire ntchito lupu Chitani nthawi Manambala a Fibonacci osapitirira 1000 amawonetsedwa motsatizana:

'Sub process imatulutsa manambala a Fibonacci osapitilira 1000 Sub Fibonacci() Dim i As Integer' counter kusonyeza malo a chinthucho mumndandanda wa Dim iFib As Integer 'ikusunga mtengo wapano wa Dim iFib_Next As Integer' imasunga mtengo wotsatira. ya mndandanda wa Dim iStep As Integer 'masitolo kukula kwa increment yotsatira' yambitsani zosintha i ndi iFib_Next i = 1 iFib_Next = 0 'Kodi Ngakhale kuti loop idzagwira ntchito mpaka mtengo wa 'nambala ya Fibonacci yapano ikuposa 1000 Chitani Pamene iFib_Next <1000 Ngati i = 1 Kenako 'nkhani yapadera ya chinthu choyamba iStep = 1 iFib = 0 Else 'sungani kukula kwa chowonjezera chotsatira musanalembenso' mtengo wapano wa sequence iStep = iFib iFib = iFib_Next End Ngati 'sindikizani nambala ya Fibonacci mugawo A la Tsamba logwira ntchito 'mumzere wokhala ndi index i Maselo(i, 1).Value = iFib' werengerani nambala yotsatira ya Fibonacci ndikuwonjezera gawo lolozera ndi 1 iFib_Next = iFib + iStep i = i + 1 Loop End Sub

Mu chitsanzo choperekedwa, chikhalidwe iFib_Next <1000 kufufuzidwa kumayambiriro kwa lupu. Choncho, ngati mtengo woyamba iFib_Next Zikadakhala zopitilira 1000, ndiye kuti kulupu sikunachitike.

Njira inanso kukhazikitsa lupu Chitani nthawi - ikani chikhalidwecho osati pachiyambi, koma kumapeto kwa kuzungulira. Pankhaniyi, kuzungulira kudzachitidwa kamodzi, mosasamala kanthu kuti mkhalidwewo wakwaniritsidwa.

Mwadongosolo, kuzungulira kotere Chitani nthawi ndi chikhalidwe choti chiwunikidwe kumapeto chidzawoneka motere:

Chitani ... Loop Pomwe iFib_Next <1000

Цикл «Chitani Mpaka» mu Visual Basic

Mphindi Chitani Mpaka zofanana kwambiri ndi kuzungulira Chitani nthawi: chipika cha code mu thupi la loop chimachitidwa mobwerezabwereza mpaka zomwe zanenedwazo zitakwaniritsidwa (zotsatira za mawu ovomerezeka ndi N'zoona). Mu ndondomeko yotsatira Sub pogwiritsa ntchito kuzungulira Chitani Mpaka pezanso milingo m'maselo onse pamndandanda A tsamba lantchito mpaka gawoli likumana ndi cell yopanda kanthu:

iRow = 1 Chitani Mpaka IsEmpty(Maselo(iRow, 1)) 'Mtengo wa selo lapano lasungidwa mugulu la dCellValues ​​dCellValues(iRow) = Maselo(iRow, 1).Value iRow = iRow + 1 Loop

Mu chitsanzo pamwambapa, chikhalidwe IsEmpty(Maselo(iRow, 1)) ili kumayambiriro kwa kamangidwe Chitani Mpaka, kotero kuti lupuyo idzachitidwa kamodzi kokha ngati selo loyamba lotengedwa liribe kanthu.

Komabe, monga zikuwonekera mu zitsanzo za loop Chitani nthawi, nthawi zina m'pofunika kuti lupu apangidwe kamodzi, mosasamala kanthu za zotsatira zoyamba za mawu ovomerezeka. Pankhaniyi, mawu okhazikika ayenera kuikidwa kumapeto kwa loop, motere:

Chitani ... Loop Mpaka IsEmpty(Maselo(iRow, 1))

Siyani Mumakonda