Exceli VBA aasad
Silmuseid kasutatakse tavaliselt kõigis programmeerimiskeeltes, kus on teatud vajadus või kriteeriumid, kui vajame teatud aja käivitamiseks kindlat koodi, kasutame nende koodide jaoks silmuseid, nüüd on VBA-s mitut tüüpi silmuseid, näiteks Do while, Tehke kuni, Silmuseks ja Iga silmuse jaoks aitavad need tsüklid koodi käivitada kuni tingimuse täitumiseni.
Lubage mul see avaldus teha kohe alguses. "Kui soovite omandada VBA-d, peate VBA-makrodes lõpule viima silmuste kontseptsiooni."
Silmus pole muud kui rakkude vahemiku läbimine, objektide vahemiku läbimine, et sama ülesannet rakkude või objektide kogumiseks korrata. Selle asemel, et teha ülesannet silmuste abil eraldi koodiridade komplektina, saame lühendada koodi pikkust võimalikult väheseks.

Nimekiri 4-st VBA-aasade tüübist
- Järgmise aasa jaoks
- Iga aasa jaoks
- Tehke silmuse ajal
- Tehke kuni aasani
Vaatame kõiki neid tüüpe üksikasjalikult.
Tüüp # 1 - järgmise aasa jaoks
For Järgmine silmus võimaldab meil rakkude vahemikus ringi liikuda ja täita sama ülesande kõigi silmus määratud lahtrite jaoks. Siin peame ütlema algus- ja lõpunumbri.
Näide
Näiteks kui soovite sisestada seerianumbrid vahemikus 1 kuni 10, on allpool tavapärane seerianumbrite sisestamise viis.
Alamseerianumber ()
Vahemik (“A1”). Väärtus = 1
Vahemik (“A2”). Väärtus = 2
Vahemik (“A3”). Väärtus = 3
Vahemik (“A4”). Väärtus = 4
Vahemik (“A5”). Väärtus = 5
Vahemik (“A6”). Väärtus = 6
Vahemik (“A7”). Väärtus = 7
Vahemik (“A8”). Väärtus = 8
Vahemik (“A9”). Väärtus = 9
Vahemik (“A10”). Väärtus = 10
Lõpeta alam
Tundub hea, kas pole? Kuid probleem on siin ainult kümme korda, kui peame selle ülesande täitma. Kuid kujutage ette, et kui soovite sisestada 100 või 1000 numbrit, kas saate kirjutada koodi 100 või 1000 rida. See on võimatu ja just seal on For Nexti ilu mugav.
Samm 1: Ava makro ja kuulutada muutuja i kui Integer.
Sub Insert_Serial_Number ()
Dim i täisarvuna
Lõpeta alam
2. samm: nüüd avage jaotis For Loop . Siin mainitakse muutuja i abil tsükli algus ja lõpp .

3. samm: kirjutage nüüd kood, mida soovite täita. Peame sisestama lahtritesse A1 kuni A10 numbrid 1 kuni 10. Range meetodi rakendamise asemel kasutage rakkude meetodit.

See küsib rea numbrit, kuna oleme muutuja i algul juba täisarvuks deklareerinud . Selle väärtus on 1. Seega mainige veerunumbrina mulle meeldivat teie rea number ja 1.

Nüüd peaks lahtri praeguse väärtuse väärtus olema üks, selle asemel, et mainida number üks mainida i väärtusena. Kuna iga aja jooksul, kasvab i väärtus 1 võrra.

Nüüd vajutage klahvi F8, et astuda ühekaupa. Vajutage klahvi F8, kuni see jõuab silmuseni For.

See kollane värv näitab, et valitud koodirida hakkab jooksma. Pange kursor I-le ja see näitab väärtust nullina.

Vajutage nüüd veel üks kord klahvi F8 ja asetage kursor i-le ja nüüd on väärtus 1.

Nii et i väärtused kõikjal on nüüd võrdsed 1. “ Lahtrid (I, 1) .väärtus = I” tähendab Lahtrid (1, 1) .Väärtus = 1.
Vajutage klahvi F8 ja vaadake väärtust lahtris A1. Lahtris A1 peate nägema 1.

Kui vajutate klahvi F8, läheb see veel kord silmusesse For, kuna muutuja i lõpupiirang on 10. Seekord on I väärtus 2.

Järgmine silmus töötab 10 korda ja sisestage seerianumbrid 1 kuni 10.

Tüüp # 2 - iga aasa jaoks
Iga VBA silmus on mõeldud objektide kogu kaudu silumiseks. Järgmise tsükli jaoks silmused läbi lahtrite ja sooritage ülesanne ning iga silmus vaatab läbi objektid nagu töölehed, diagrammid, töövihikud, kujundid.
Selle tsükli abil saame läbi käia kõik töölehed ja täita mõned ülesanded. Näiteks saate töölehtede peitmiseks ja peitmiseks kuvada kõik töölehed.
Näide 1
Kui soovite peita kõik töölehed, välja arvatud leht, mille kallal töötate, siis kuidas te seda teete? Kui teil on töövihikus 20 lehte, on see aeganõudev protsess. Kuid iga ahela jaoks saame selle ülesande täita.
Mul on 5 lehte ja ma tahan peita kõik lehed, välja arvatud see, et kood allpool olev leht “Main” täidaks minu jaoks selle ülesande.
Alam_Peida_Kõik_leht ()
Dim Ws töölehena
Iga W jaoks ActiveWorkbookis. Töölehed
Kui Ws.Name "Main", siis
Ws.Visible = xlSheetVeryHidden
End If
Järgmised Ws
Lõpeta alam
Näide 2
Kui soovite kõik peidetud lehed varjata, täidab teie töö allpool toodud kood.
Sub To_UnHide_Specific_Sheet ()
Dim Ws töölehena
Iga W jaoks ActiveWorkbookis. Töölehed
Ws.Visible = xSheetVisible
Järgmised Ws
Lõpeta alam
Tüüp # 3 - Tee silmuse ajal
Rakendus Do While loop täidab ülesannet ajal, mil antud tingimus on TÕENE, ja kui tingimusest saab FALSE, lõpetab see loopimise. Erinevalt kahest teisest silmusest testib Do While tingimust silmuse lõpus, mitte alguses.
Näitan teile näidet seerianumbrite sisestamise kohta silmuse Do While abil.
Alam Do_While_Example ()
Dim i täisarvuna
i = 1
Tehke, kui i <11
rakku (i, 1). Väärtus = i
i = i + 1
silmus
Lõpeta alam
Ülaltoodud tsükkel töötab, kui i on alla 11 ja jätkab seerianumbrite sisestamist. Hetkel, kui ma saan suuremaks kui 11, lakkab see loopimist.
Tüüp # 4 - tehke kuni silmuseni
Erinevalt silmusest Do While ei jookse silmus Do Until, kuni tingimus on TRUE; pigem silmus, kuni tingimus on FALSE. Näiteks vaadake allolevat koodi.
Sub Do_Until_Example ()
Dim i täisarvuna
i = 1
Tehke seni, kuni i = 11
rakku (i, 1). Väärtus = i
i = i + 1
silmus
Lõpeta alam
Ainus erinevus silmuse Do While & Do Until vahel on meie määratud operaator. Kirjas Do, kui me mainisime tsükli käivitamist, kui i on väiksem kui (<), 11, kuid do kuni silmuse, mainisime tsükli käivitamist, kuni i on võrdne (=) kuni 11.
Asjad, mida meeles pidada
- On olemas täpsem Exceli VBA silmuse näide, kuid käsitleme neid kõiki eraldi artiklis üksikasjalikult.
- Iga silmus on mõeldud objekti muutujate jaoks.
- Kuigi väljanägemine „Tee samas ja tee kuni” näeb välja sama, on seisundi mainimine väga oluline.
- Silmused on väga olulised mõisted.