Excel VBA cilpas
Cilpas parasti izmanto visās programmēšanas valodās, kur ir noteikta vajadzība vai kritēriji, kad mums ir nepieciešams noteikts kods, lai palaistu noteiktu laiku, mēs šiem kodiem izmantojam cilpas, tagad VBA ir daudz veidu cilpu, piemēram, Do savukārt, Darīt līdz, Cilpai un Katrai cilpai šīs cilpas palīdz kodam izpildīt, līdz nosacījums ir izpildīts.
Ļaujiet man izteikt šo paziņojumu pašā sākumā. "Ja vēlaties apgūt VBA, jums jāapgūst cilpu jēdziens VBA makros."
Cilpa nav nekas cits kā iet cauri šūnu diapazonam, iet cauri objektu diapazonam, lai atkārtotu to pašu uzdevumu šūnu vai objektu savākšanai. Tā vietā, lai veiktu uzdevumu atsevišķā kodu rindu komplektā, izmantojot cilpas, mēs varam saīsināt koda garumu līdz mazākajam iespējamajam.

4 labāko VBA cilpu veidu saraksts
- Par nākamo cilpu
- Par katru cilpu
- Dariet, kamēr cilpa
- Dariet līdz cilpai
Apskatīsim katru no šiem veidiem detalizēti.
1. tips - nākamajai cilpai
For Next cilpa ļauj mums veikt cilpas caur šūnu diapazonu un veikt to pašu uzdevumu katrai cilpai, kas norādīta cilpā. Šeit mums jāpasaka sākuma un beigu numurs.
Piemērs
Piemēram, ja vēlaties ievietot sērijas numurus no 1 līdz 10, tālāk ir tradicionālais sērijas numuru ievietošanas veids.
Apakšsērijas numurs ()
Diapazons (“A1”). Vērtība = 1
Diapazons (“A2”). Vērtība = 2
Diapazons (“A3”). Vērtība = 3
Diapazons (“A4”). Vērtība = 4
Diapazons (“A5”). Vērtība = 5
Diapazons (“A6”). Vērtība = 6
Diapazons (“A7”). Vērtība = 7
Diapazons (“A8”). Vērtība = 8
Diapazons (“A9”). Vērtība = 9
Diapazons (“A10”). Vērtība = 10
Beigu apakšnodaļa
Izskatās labi, vai ne? Bet problēma šeit ir tikai 10 reizes, kad mums ir jāveic šis uzdevums. Bet iedomājieties, kā rīkoties, ja vēlaties ievietot 100 vai 1000 ciparus, vai varat uzrakstīt kodu 100 vai 1000 rindiņas. Tas nav iespējams, un tieši tur ir noderīgs For Next cilpas skaistums.
1. solis: Atveriet makro un paziņojiet mainīgo i kā veselu skaitli.
Apakšsadaļa_Sērijas_numurs ()
Dim i kā vesels skaitlis
Beigu apakšnodaļa
2. solis: Tagad atveriet For Loop . Šeit miniet cikla sākumu un beigas, izmantojot mainīgo i.

3. solis: Tagad uzrakstiet kodu, kuru vēlaties veikt. Mums šūnās A1 līdz A10 jāievieto skaitļi no 1 līdz 10. Tā vietā, lai izmantotu metodi Range, izmantojiet šūnu metodi.

Tas prasa rindas numuru, jo mēs jau sākotnēji esam deklarējuši mainīgo i kā veselu skaitli. Tā vērtība ir 1. Tātad kā slejas numuru miniet man patīk jūsu rindas numurs un 1.

Tagad pašreizējās šūnas vērtības vērtībai vajadzētu būt vienai, tā vietā, lai kā vērtību minētu pirmo numuru i . Tā kā katru reizi cikla laikā i vērtība pieaugs par 1.

Tagad nospiediet taustiņu F8, lai pārietu pa vienai rindai. Nospiediet F8, līdz tas sasniedz For cilni.

Šī dzeltenā krāsa norāda, ka izvēlētā koda rinda gatavojas darboties. Novietojiet kursoru uz I, un tā parādīs vērtību kā nulle.

Tagad nospiediet vēl vienu reizi F8 taustiņu un novietojiet kursoru uz i & tagad vērtība ir 1.

Tātad i vērtības visur visur ir vienādas ar 1. “ Šūnas (I, 1). Vērtība = I” nozīmē Šūnas (1, 1). Vērtība = 1.
Nospiediet taustiņu F8 un skatiet vērtību šūnā A1. Šūnā A1 jums ir jāredz 1.

Tagad, nospiežot taustiņu F8, tas atkal atgriezīsies cilnē For, jo mainīgā i beigu limits ir 10. Šoreiz I vērtība būs 2.

Nākamā cilpa darbosies 10 reizes un ievietojiet sērijas numurus no 1 līdz 10.

2. tips - katrai cilpai
Katrai VBA cilpa ir paredzēta, lai izveidotu objektu kolekciju. Nākamajai cilpai cilpas caur šūnām un veic uzdevumu, un katrai cilpai tiek cirkulēti objekti, piemēram, darblapas, diagrammas, darbgrāmatas, formas.
Izmantojot šo cilpu, mēs varam iziet visas darblapas un veikt dažus uzdevumus. Piemēram, jūs varat apskatīt visas darblapas, lai paslēptu un paslēptu darblapas.
1. piemērs
Ja vēlaties paslēpt visas darblapas, izņemot lapu, pie kuras strādājat, kā jūs to darīsit? Ja darbgrāmatā ir 20 loksnes, tas ir laikietilpīgs process. Bet ar KATRU cilpu mēs varam izpildīt šo uzdevumu.
Man ir 5 lapas, un es vēlos paslēpt visas lapas, izņemot to, ka zemāk esošais kods “Main” izpildīs uzdevumu man.
Apakšslēpt_Visa_lapa ()
Dim Ws kā darblapa
Katram W ActiveWorkbook. Darbnīcas
Ja Ws.Name “Main”, tad
Ws.Visible = xlSheetVeryHidden
End Ja
Nākamie Ws
Beigu apakšnodaļa
2. piemērs
Ja vēlaties paslēpt visas slēptās lapas, tad jūsu vietā darbu veiks zemāk redzamais kods.
Sub To_UnHide_Specific_Sheet ()
Dim Ws kā darblapa
Katram W ActiveWorkbook. Darbnīcas
Ws.Visible = xlSheetVisible
Nākamie Ws
Beigu apakšnodaļa
Tips 3 - Dariet, kamēr cilpa
Vai kamēr cilpa veic uzdevumu, kamēr dotais nosacījums ir PATIESA, un, kad nosacījums kļūs FALSE, tas pārtrauks cilpu izveidi. Atšķirībā no abām pārējām cilpām, Do While pārbauda stāvokli cilpas beigās, nevis sākumā.
Es jums parādīšu piemēru, kā sērijas numurus ievietot ar cilni Do While.
Sub Do_While_Example ()
Dim i kā vesels skaitlis
i = 1
Dariet, kamēr i <11
šūnas (i, 1). Vērtība = i
i = i + 1
cilpa
Beigu apakšnodaļa
Iepriekš minētā cilpa darbosies, kamēr i ir mazāks par 11 un turpina ievietot sērijas numurus. Brīdī, kad es kļūšu lielāks par 11, tas pārstās cilpot.
4. tips - darīt līdz cilpai
Atšķirībā no cikla Do While, cilpa DoDo nedarbojas, kamēr nosacījums ir TRUE; drīzāk tas notiek, līdz nosacījums ir FALSE. Piemēram, apskatiet zemāk redzamo kodu.
Sub Do_Until_Example ()
Dim i kā vesels skaitlis
i = 1
Dariet, kamēr i = 11
šūnas (i, 1). Vērtība = i
i = i + 1
cilpa
Beigu apakšnodaļa
Vienīgā atšķirība starp cilpu Do kamēr un Darīt ir mūsu norādītais operators. Darbā Do, kamēr mēs pieminējām cilpas palaišanu, kamēr i ir mazāks par (<), 11, bet darām līdz cilpai, mēs minējām palaist cilpu, kamēr i ir vienāds ar (=) līdz 11.
Atceramās lietas
- Ir uzlabots Excel VBA cilpas piemērs, taču mēs detalizēti aplūkosim katru no tiem atsevišķā rakstā.
- Katra cilpa ir paredzēta objektu mainīgajiem.
- Lai gan Dariet un dariet līdzīgi izskatās tas pats, minot nosacījumu, ir ļoti svarīgi.
- Cilpas ir ļoti svarīgi jēdzieni.