VBA pārtraukums cilpai - Kā iziet uz loku programmā Excel VBA?

Satura rādītājs

Excel VBA pārtraukums cilpai

Programmā VBA Break For Loop ir pazīstams arī kā izeja no cilpas, katrai procedūras cilpai ir dots instrukciju vai kritēriju kopums, lai tā palaistu laika nuberu, taču ir ļoti bieži, ka kāda cilpa nonāk bezgalīgā ciklā, tādējādi sabojājot kods šādos scenārijos mums ir nepieciešams pārtraukums vai izeja no cilpas, lai iznāktu noteiktās situācijās.

Pieņemsim, ka mēs esam norādījuši, ka cilpa darbojas 10 reizes, un, pamatojoties uz norādīto nosacījumu, ja šūnas vērtība vai citi piegādātie kritēriji ir veiksmīgi, tad tai ir jāiziet no Excel cilpas, pirms tā pabeidz pilnas cilpas kvotu 10. Šajā rakstā mēs parādīsim, kā iziet no cilpas, pamatojoties uz norādītajiem kritērijiem.

Kā pārtraukt / iziet cilpas VBA?

# 1 - pārtraukums nākamajai cilpai

VBA For Next Loop tiek izmantots, lai izveidotu cilpu un veiktu noteiktu uzdevumu kopumu. Piemēram, apskatiet zemāk redzamo VBA kodu.

Kods:

Sub Exit_Loop () Dim K tik ilgi, kamēr K = 1 līdz 10 šūnas (K, 1). Vērtība = K Nākamā K beigu apakšdaļa

Tas ievietos sērijas numurus no šūnas A1 līdz A10.

Tas ir acīmredzams ar For Next Loop.

Tagad es gribu pārtraukt cilpu, kad pirmajās 10 šūnās tiek atrasta kāda vērtība. Šim nolūkam šūnā A8 esmu ievadījis kādu teksta vērtību.

Tagad es vēlos to pamācīt kodā, sakot: "Ja cilpas šūnai ir noteikta vērtība, tai ir jāiziet no cilpas pirms iepriekš noteiktā limita."

Kods:

Sub Exit_Loop () Dim K tik ilgi, kamēr K = 1 līdz 10, ja šūnas (K, 1). Vērtība = "" Tad šūnas (K, 1). Vērtība = K Cita izeja beigām, ja nākamā K beigu apakšdaļa

Skatiet šo koda rindu:

Ja Cells (K, 1) .Value = "", tad
šūnas (K, 1) .Value = K
Else
Iziet Par
beidzas, ja

Tajā teikts, ja šūnas (K, 1). Vērtība = “cilpas šūna ir vienāda ar neko, turpiniet sērijas numuru ievietošanas ciklu no 1 līdz 10.

Cilpas pēdējā daļa saka:

Cits

Izeja uz

Ja iepriekš minētais nosacījums nav PATIESA, tad cilne “Iziet”.

Tagad palaidiet kodu. Tas ievietos sērijas numurus līdz A7 šūnai.

Iepriekš minētais kods uzreiz aizgāja no cilpa, neko nepasakot; kā mēs zinām, ka tas ir izgājis no cilpas.

Lai novērstu šo neskaidrību, mums zemāk ir jāievieto viens vienkāršs VBA ziņojumu lodziņš.

Kods:

Sub Exit_Loop () Dim K Tik ilgi, kamēr K = 1 līdz 10 Ja šūnas (K, 1). Vērtība = "" Tad šūnas (K, 1). Vērtība = K Vēl MsgBox "Mēs saņēmām tukšu šūnu šūnā" & Šūnas (K, 1). Adrese & vbNewLine & "Mēs izejam no cilpas" Exit For End Ja Nākamā K End Sub

Pārlūkojot caur šūnu, ja tiek atrasta kāda tukša šūna, šūnā A8 tiks parādīts ziņojums: “Mēs saņēmām tukšu šūnu. Mēs izejam no cilpas ”.

Tas informēs lietotāju arī par cilpas izeju ar šūnas adresi. Ja kāda vērtība tiek ievadīta kļūdaini, tad mēs varam pārbaudīt ziņojuma lodziņā atgriezto šūnas adresi.

# 2 - Pārtraukt līdz cilpai

Tāpat kā tas, kā mēs esam aizgājuši no programmas Next Next Loop, līdzīgi varam iziet arī no cilnes “Darīt līdz”. Piemēram, apskatiet zemāk redzamo kodu.

Kods:

Sub Exit_DoUntil_Loop () Dim K As Long

Šis kods veic arī sērijas numuru ievietošanas uzdevumu. Piemēram, ja mēs vēlamies iziet no cilpas, kad mainīgā “k” vērtība kļūst par 6, mums jāievada kritēriji kā IF k = 6, pēc tam izejiet no cilpas.

Kods:

Sub Exit_DoUntil_Loop () Dim K Tik ilgi K = 1 Dariet līdz K = 11 Ja K <6, tad šūnas (K, 1). Vērtība = K Cita izeja Do End Ja K = K + 1 Loop End Sub

Tas palaidīs cilpu, līdz mainīgā vērtība kļūst par 6. Pēc tam tā izies no cilpas. Ja vēlaties parādīt ziņojumu lietotājam, varat pievienot arī ziņojumu lodziņu.

Kods:

Sub Exit_DoUntil_Loop () Dim K tik ilgi, K = 1 dariet līdz K = 11, ja K 5 "izeja Do End, ja K = K + 1 Loop End Sub

Tas parādīs zemāk redzamo ziņojumu.

Šādi, pamatojoties uz dotajiem kritērijiem, mēs varam iziet no cilpas, ja kritēriji ir PATIESI, vai arī mēs varam turpināt ciklu.

Interesanti raksti...