Vai vēlaties automatizēt atkārtotus uzdevumus programmā Excel, izmantojot VBA? Uzziniet, kā izmantot cilpu Katram, lai efektīvi manipulētu ar datiem savās izklājlapās.
Cilpas un VBA iet kopā, un arī laba iemesla dēļ. Strādājot ar Microsoft Office objektiem, piemēram, darbgrāmatām, darblapām un diapazoniem, cilpas var palīdzēt salīdzinoši viegli pārslēgties starp katru no tiem.
Lai gan vairāk vai mazāk visas VBA cilpas labi darbojas ar objektiem, cilpa “katram” ir viena no labākajām iespējām darbam ar objektu kolekcijām. Ja esat iesācējs Excel VBA un vēlaties apgūt katras cilpas, varat ātri mācīties no dažiem no šiem piemēriem. Šeit ir viss, kas jums jāzina par šo būtisko cilpu.
Katras cilpas sintaksei
Katras cilpas sintakse ir diezgan līdzīga parastajai cilpai programmā Excel VBA. Lūk, sintakse:
Katram mainīgā_nosaukumam objektā_kolekcijā
[paziņojums, apgalvojums]
[paziņojums, apgalvojums]
[paziņojums, apgalvojums]
Nākamais mainīgā_nosaukums
Cilpa sākas ar atslēgvārdu "katram"; varat izmantot jebkuru mainīgā nosaukumu, kam seko objektu kolekcija. Katras cilpas objekts var būt šūnas, diapazoni, lapas un pat darbgrāmatas. Tāds ir šīs cilpas skaistums; tas sniedz jums elastību, strādājot ar dažādām Excel kolekcijām.
Cilpa iziet cauri katrai kolekcijas vērtībai un saglabā atsauci definētā mainīgā nosaukumā. Pēc izpildes VBA izpilda cilpas ietvaros saglabātos paziņojumus un pāriet uz nākamo kolekcijas objektu ( Nākamais atslēgvārds šeit ir noderīgs). Izpratīsim koda struktūru ar pamata piemēru.
Kā izmantot katrai cilpai programmā Excel VBA
Pieņemsim, ka vēlaties izdrukāt skaitli šūnās A1 līdz A10. Labākā pieeja ir izmantot katrai cilpai ar diapazona funkciju un ļaut kodam veikt nepieciešamo. Lūk, kā jūs varat veikt šo vienkāršo uzdevumu:
- Atveriet VBA koda redaktoru, nospiežot Alt + F11.
- Ievietojiet moduli, noklikšķinot uz Modulis opcija sadaļā Ievietot cilne.
- Izveidojiet apakšprogrammu, izmantojot komandu sub() koda redaktora moduļa logā. Noteikti piešķiriet apakšprogrammai jēgpilnu nosaukumu. Šajā piemērā varat izmantot nosaukumu katrai_cilpai.
Tagad, kad pamati vairs nav pieejami, ir pienācis laiks sākt rakstīt kodu. Apakšprogrammā ierakstiet šādas komandas:
Aptumšota šūna kā diapazons
Katrai šūnai iekšā Lapas ("1. lapa").Diapazons("A1:A10")
šūna.vērtība = 10
Nākamā šūna
Kad kods tiek izpildīts, c mainīgais saglabās A1 vērtību. Pēc tam, pārejot uz priekšrakstu cilpas ietvaros, tā novērtē komandu un ievada vērtību 10 definētajā šūnā, t.i., šūnā A1.
Visbeidzot, pārejot uz nākamo atslēgvārdu, tas pāriet uz nākamo vērtību, t.i., šūnu A2. Cilpa darbojas, līdz tā sasniedz šūnu A10. Šī ir galīgā izvade:
Cilpas izmantošana ar objektiem: šūnas, lapas un darbgrāmatas
Programmā Excel ir trīs galvenie objektu veidi, ar kuriem jūs strādājat regulāri. Tās ir šūnas, lapas un darbgrāmatas. Lūk, kā varat izmantot cilpu ar visiem trīs objektu veidiem.
Darbs ar šūnām un cilpām kopā
Pieņemsim, ka vēlaties pievienot vērtību un dažus formatēšanas nosacījumus 1. lapas šūnu diapazonam. Vispirms ir jādefinē cilpas nosacījumi, kam seko formatēšanas komandas.
Ievadiet šādu kodu apakšprogrammā.
Sub for_each_loop()
Dim c Kā Diapazons
Katram c In Sheets("1. lapa").Diapazons("A1:A10")
Ar c
.Vērtība = 10
.Fonts. Krāsa = vbRed
.Fonts. Treknrakstā = Taisnība
.Fonts. Pārsvītrots = Taisnība
BeigasAr
Nākamais c
Beigas Apakš
The ar funkcija ir noderīga, veicot vairākas funkcijas ar vienu konkrētu objektu. Tā kā vēlaties veikt virkni uzdevumu ar mainīgo c, varat tos visus apvienot, izmantojot funkciju ar..end ar funkciju.
Cilpa pielīdzina c vērtību katrai šūnas vērtībai un ievada vērtību kā 10. Turklāt tas maina šūnas krāsu uz sarkanu, izceļ vērtību treknrakstā un pārsvītro to. Kad tas ir pabeidzis visas darbības, tas pāriet uz nākamo definēto vērtību diapazonā.
Izmantojot cilpu, lai kontrolētu lapas
Līdzīgi kā iepriekš minētajā piemērā, varat izmantot katrai cilpai, lai kontrolētu lapas. Kā mainīt lapas Sheet1 nosaukumu uz Sheet3, izmantojot VBA?
Varat izmantot šo kodu, lai pārdēvētu esošu darblapu programmā Excel, izmantojot VBA:
Sub for_each_loop_sheets()
PriekšKatrsshtInŠī darba grāmata.Palags
Ja sht. Vārds = "1. lapa" Tad
sht. Vārds = "3. lapa"
BeigasJa
Nākamais sht
Beigas Apakš
Kods iziet cauri katrai darbgrāmatas lapai un pārbauda katras lapas nosaukumu. Ja tas saskaras ar nosaukumu Sheet1, tas maina to uz Sheet3. Tas virzās cauri pārējām darbgrāmatas lapām, ja tādas ir. Kad koda izpilde sasniedz pēdējo lapu, tā iziet no cilpas un apakšprogrammas.
Starp dažiem citiem izplatītiem lietojumiem varat apvienot vairākas darblapas, izmantojot VBA un atjaunināt saturu vienā lapā, izmantojot cilpas.
Pārslēgties caur darbgrāmatām ar cilpu
Visbeidzot, varat izmantot katrai cilpai, lai pārslēgtos starp dažādām darbgrāmatām un veiktu konkrētus uzdevumus. Parādīsim šo funkciju ar piemēru.
Varat izmantot VBA komandas, lai pievienotu trīs jaunas darbgrāmatas un aizvērtu visas atvērtās. Lūk, kā to izdarīt:
Sub loop_wrkbook()
Blāva darba grāmata kā darba burtnīca
Darba burtnīcas.Pievienot
Darba burtnīcas.Pievienot
Darba burtnīcas.Pievienot
Katrai darbgrāmatai darbgrāmatās
darba grāmata.Aizvērt
Nākamā darba grāmata
Beigas Apakš
Iepriekš minētais kods aizvērs arī jūsu makro darbgrāmatu; pirms šī koda palaišanas pārliecinieties, vai esat saglabājis savus kodus.
Tā kā cilpām ir vairāki lietojumi, varat arī konsolidēt datus no vairākām darbgrāmatām vienā darbgrāmatā.
Nested IF paziņojuma izmantošana ar cilpu
Tāpat kā iepriekš minētajā piemērā, cilpas ietvaros varat izmantot IF priekšrakstu, lai pārbaudītu konkrētus nosacījumus. Mainīsim šūnas fona krāsu, pamatojoties uz šūnas vērtībām.
Šūnās A1:A20 ir daži nejauši skaitļi. Varat ierakstīt cilpu, lai pārvietotos pa katru norādīto diapazona šūnu; ja šūnas vērtība ir mazāka par 10, šūnas krāsai jāmainās uz sarkanu. Ja šūnas vērtība pārsniedz 10, tai vajadzētu kļūt zaļai. Šim nolūkam izmantojiet šādu kodu:
Apakšcilpa_w_if()
Dim c Kā Diapazons
Katram c In Sheets("4. lapa").Diapazons("A1:A20")
Jac.Vērtība < 10 Tad
c. Interjers. ColorIndex = 3
Citādi: c. Interjers. ColorIndex = 4
BeigasJa
Nākamais c
Beigas Apakš
Šādi izskatās izvade:
Ciklu izmantošana programmā Excel VBA
Excel VBA neaprobežojas tikai ar katrai cilpai. Ir dažādas noderīgas cilpas, kas ļauj ērti veikt dažādas funkcijas. Atvadieties no ikdienišķiem, manuāliem uzdevumiem, jo VBA cilpas, piemēram, for cilpa, veiciet kamēr un dariet, līdz iedarbojas cilpas, lai atvieglotu jūsu dzīvi.