Loops na VBA

Enwere ọnọdụ mgbe achọrọ mmemme VBA iji mee otu usoro omume ọtụtụ oge n'usoro (ya bụ, megharịa otu ngọngọ koodu ọtụtụ oge). Enwere ike ime nke a site na iji loops VBA.

loops VBA gụnyere:

Na-esote, anyị ga-elebakwu anya na nke ọ bụla n'ime okirikiri ndị a.

Maka Onye Ọrụ Loop na Visual Basic

Ọdịdị nke onye na-arụ ọrụ loop The na Visual Basic nwere ike ịhazi n'otu n'ime ụdị abụọ: dịka akaghị Maka… Ọzọ ma ọ bụ dị ka loop Maka Onye ọ bụla.

okirikiri “Maka… na-esote”

Nsochi Maka… Ọzọ na-eji mgbanwe na-ewere ụkpụrụ n'usoro n'usoro enyere. Na mgbanwe ọ bụla nke uru nke mgbanwe ahụ, a na-eme ihe ndị a na-etinye n'ime ahụ nke okirikiri. Nke a dị mfe nghọta site na atụ dị mfe:

Maka i = 1 ruo 10 ngụkọta = ngụkọta + iArray(i) na-esote i

Na nke a dị mfe akaghị Maka… Ọzọ a na-eji agbanwe agbanwe i, nke na-ewere ụkpụrụ 1, 2, 3, ... 10, na maka nke ọ bụla n'ime ụkpụrụ ndị a, a na-eme koodu VBA n'ime akaghị. Ya mere, loop a na-achịkọta ihe ndị dị n'usoro. iArray na mgbanwe Total.

N'ihe atụ a dị n'elu, akọwapụtaghị mmụba akaghị aka, ya mere iji mee ka mgbanwe ahụ dịkwuo elu i site na 1 ruo 10, ndabara bụ mmụba 1… Otú ọ dị, n'ọnọdụ ụfọdụ ọ dị mkpa iji ụkpụrụ ịrị elu dị iche iche maka loop. Enwere ike ime nke a site na iji isiokwu Nzọụkwụdị ka e gosiri na-esonụ dị mfe ihe atụ.

Maka d = 0 ruo 10 Nzọụkwụ 0.1 dTotal = dTotal + d Ọzọ d

Ebe ọ bụ na n'ime ihe atụ dị n'elu, a na-edozi nzọụkwụ ịrị elu hà nhata 0.1, mgbe ahụ mgbanwe dTotal n'ihi na nke ọ bụla ugboro ugboro nke okirikiri na-ewere ụkpụrụ 0.0, 0.1, 0.2, 0.3,… 9.9, 10.0.

Iji chọpụta nzọụkwụ akaghị na VBA, ị nwere ike iji uru na-adịghị mma, dịka ọmụmaatụ, dịka nke a:

Maka i = 10 Ka 1 Nzọụkwụ -1 iArray (i) = i Na-esote i

Ebe a na-abawanye bụ -1, ya mere mgbanwe i na nke ọ bụla ugboro ugboro nke okirikiri na-ewere ụkpụrụ 10, 9, 8, ... 1.

Họrọ "Maka onye ọ bụla"

Nsochi Maka Onye ọ bụla yiri okirikiri Maka… Ọzọ, ma kama ikwugharị n'usoro nke ụkpụrụ maka counter variable, akaghị Maka Onye ọ bụla na-eme usoro omume maka ihe ọ bụla n'ime otu ihe akọwapụtara. N'ihe atụ na-esonụ, iji loop Maka Onye ọ bụla na-edepụta akwụkwọ niile dị na akwụkwọ ọrụ Excel ugbu a:

Dim wSheet dị ka akwụkwọ ọrụ maka wsheet ọ bụla na akwụkwọ ọrụ MsgBox "Найден лист:" & wSheet.Aha na-esote wSheet

Nkwupụta nkwụsịtụ loop "Wepụ maka"

Onye ọrụ Wepụ maka eji akwụsị okirikiri. Ozugbo enwetara nkwupụta a na koodu ahụ, mmemme ahụ na-ejedebe mmezu nke loop wee gaa n'ihu na mmezu nke nkwupụta ndị dị na koodu ahụ ozugbo akara a gasịrị. Enwere ike iji nke a, dịka ọmụmaatụ, ịchọ otu uru dị n'usoro. Iji mee nke a, na-eji loop, a na-enyocha ihe ọ bụla nke nhazi ahụ. Ozugbo a chọtara ihe a chọrọ, ọ dịghị mkpa ile anya site na ndị ọzọ - a kwụsịrị okirikiri.

Ngwa onye ọrụ Wepụ maka gosiri n'ihe atụ na-esonụ. N'ebe a, loop na-atụgharị ihe karịrị 100 nhazi ntinye ma jiri nke ọ bụla tụnyere uru nke mgbanwe dVal… Ọ bụrụ na achọtara egwuregwu, mgbe ahụ a ga-akwụsị loop:

Maka i = 1 ruo 100 Ọ bụrụ dValues(i) = dVal Mgbe ahụ IndexVal = i Wepụ maka Ọgwụgwụ Ọ bụrụ na-esote

The Do while Loop in Visual Basic

Nsochi Mee obere oge na-eme ngọngọ koodu ma ọ bụrụhaala na emezuru ọnọdụ akọwapụtara. Nke a bụ ihe atụ nke usoro sub, nke na-eji loop Mee obere oge A na-egosipụta nọmba Fibonacci na-erughị 1000 n'usoro:

'Sub usoro mmepụta Fibonacci nọmba agaghị agafe 1000 Sub Fibonacci () Dim i As Integer 'counter iji gosi ọnọdụ nke mmewere na usoro Dim iFib Dị ka Integer' na-echekwa uru ugbu a nke usoro Dim iFib_Next Ka Integer 'na-echekwa uru na-esote. nke usoro Dim iStep Dị ka Integer 'na-echekwa nha nke mmụba ọzọ' malite mgbanwe i na iFib_Next i = 1 iFib_Next = 0 'Do Mgbe loop ga-eme ruo mgbe uru 'nọmba Fibonacci dị ugbu a karịrị 1000 Do Mgbe iFib_Next Ọ bụrụ na <1000 1 Mgbe ahụ 'ikpe pụrụ iche maka elementrị mbụ iStep = 1 iFib = 0 Ọzọ' chekwaa nha nke mgbakwunye ọzọ tupu ịdegharịa 'uru nke usoro a ugbu a iStep = iFib iFib = iFib_Next End Ọ bụrụ 'bipụta nọmba Fibonacci dị ugbu a na kọlụm A nke akwụkwọ ọrụ na-arụ ọrụ 'na ahịrị na index i Cell (i, 1) .Uru = iFib 'gbakọọ nọmba Fibonacci na-esote wee mee ka ndeksi ọnọdụ mmewere site na 1 iFib_Next = iFib + iStep i = i + 1 Loop End Sub

Na ihe atụ nyere, ọnọdụ iFib_Na-esote <1000 enyocha na mmalite nke loop. Ya mere, ọ bụrụ na mbụ uru iFib_Na-esote Ọ bụrụ na enwere ihe karịrị 1000, mgbe ahụ, a gaghị egbu loop ahụ.

Ụzọ ọzọ iji mejuputa loop Mee obere oge - tinye ọnọdụ ahụ ọ bụghị na mmalite, ma na njedebe nke loop. N'okwu a, a ga-egbu loop ahụ ma ọ dịkarịa ala otu ugboro, n'agbanyeghị ma ọnọdụ ahụ ezutere.

Schematically, ndị dị otú ahụ okirikiri Mee obere oge na ọnọdụ a ga-elele na njedebe ga-adị ka nke a:

Mee ... Loop Mgbe iFib_Na-esote <1000

Цикл «Do ruo mgbe» в Visual Basic

Nsochi Mee ruo mgbe yiri okirikiri Mee obere oge: A na-eme ihe ngọngọ nke koodu dị n'ime ahụ nke loop ugboro ugboro ruo mgbe a ga-ezute ọnọdụ a kapịrị ọnụ (nsonaazụ nke nkwupụta okwu bụ. ezi). Na usoro ọzọ sub iji okirikiri Mee ruo mgbe weghachite ụkpụrụ na sel niile dị na kọlụm A akwụkwọ ọrụ ruo mgbe kọlụm ahụ zutere cell efu:

iRow = 1 Mee ruo mgbe IsEmpty (Cells (iRow, 1)) 'A na-echekwa uru nke cell dị ugbu a na nhazi dCellValues ​​dCellValues(iRow) = Sel (iRow, 1) .Uru iRow = iRow + 1 Loop

N'ihe atụ dị n'elu, ọnọdụ ahụ Ihe efu (Mkpụrụ ndụ (iRow, 1)) dị na mmalite nke nhazi ahụ Mee ruo mgbe, yabụ, a ga-egbu loop ahụ opekata mpe otu ugboro ma ọ bụrụ na cell mbụ ewepụtara abụghị ihe efu.

Otú ọ dị, dị ka e gosiri na loop ihe atụ Mee obere oge, N'ọnọdụ ụfọdụ ọ dị mkpa ka e gbuo loop ahụ ma ọ dịkarịa ala otu ugboro, n'agbanyeghị agbanyeghị nsonaazụ mbụ nke nkwupụta ọnọdụ. N'okwu a, a ga-etinye okwu ahụ n'ọnọdụ na njedebe nke loop, dị ka nke a:

Mee ... Loop ruo mgbe IsEmpty (Ụdị (iRow, 1))

Nkume a-aza