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

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 nokļūst 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ā aizpilda pilnu cilpas 10 kvotu. Šajā rakstā , mēs parādīsim, kā iziet no cikla, pamatojoties uz dotajiem kritērijiem.

Kā pārtraukt / iziet cilpas VBA?

Šo VBA Break for Loop Excel veidni varat lejupielādēt šeit - VBA Break For Loop Excel veidne

# 1 - pārtraukums nākamajai cilpai

VBA For Next Loop tiek izmantots, lai izveidotu cilpu un veiktu noteiktu uzdevumu kopumu. Piemēru skatiet zemāk redzamajā VBA kodā.

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 jebkura vērtība ir atrasta pirmajās 10 šūnās, tāpēc es šūnā A8 esmu ievadījis kādu teksta vērtību.

Tagad es gribu to uzdot kodā, sakot: "Ja cilnes šū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 šūnas (K, 1). Vērtība = “” Tad

Šūnas (K, 1). Vērtība = K

Cits

  Izeja uz

Beigt 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, cilpa “Iziet”.

Tagad palaidiet kodu, kurā tiks ievietoti sērijas numuri līdz A7 šūnai.

Iepriekš minētais kods uzreiz aizgāja no cilpas, neko nepasakot. Kā mēs zinām, ka tas ir iziet no cilpas.

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

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 

Ja tiek atrasta šūna, kurā nav 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 ir ievadīta kļūdaini, mēs varam pārbaudīt ziņojuma lodziņā atgriezto šūnas adresi.

# 2 - Pārtrauciet līdz cilpai

Tāpat kā tas, kā mēs esam izgājuši no nākamās cilmas, līdzīgi varam iziet arī no “Darīt līdz”. Piemēram, apskatiet zemāk redzamo kodu.

Kods:

 Sub Exit_DoUntil_Loop () Dim K Tik ilgi K = 1 Dariet līdz K = 11 Šūnas (K, 1). Vērtība = KK = K + 1 Cilpas beigu apakšdaļa 

Š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 paliks cilpu, līdz mainīgā vērtība kļūst 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 norādītajiem kritērijiem, mēs varam iziet no cikla, ja kritēriji ir PATIESI, vai arī mēs varam turpināt ciklu.


$config[zx-auto] not found$config[zx-overlay] not found