Loop ja VBA käivad koos ja ka mõjuval põhjusel. Kui käsitlete Microsoft Office'i objekte, nagu töövihikud, töölehed ja vahemikud, aitavad silmused nende vahel suhteliselt hõlpsalt ümber lülituda.
Kuigi enam-vähem kõik VBA tsüklid töötavad hästi objektidega, on silmus 'iga jaoks' üks parimaid võimalusi objektikogudega töötamiseks. Kui olete Exceli VBA uus kasutaja ja soovite iga tsükli jaoks selgeks saada, saate mõnest neist näidetest kiiresti õppida. Siin on kõik, mida peate selle olulise tsükli kohta teadma.
PÄEVA VIDEO MAKKEUSE SISUGA JÄTKAMISEKS KERIMISE
Iga tsükli süntaksi jaoks
Iga tsükli süntaks on üsna sarnane Excel VBA tavapärasele tsüklile. Siin on süntaks:
For each variable_name in object_collection
[statement]
[statement]
[statement]
Next variable_name
Silmus algab märksõnaga 'igaühele'; võite kasutada mis tahes muutuja nime, millele järgneb objektikogu. Iga tsükli objektiks võivad olla lahtrid, vahemikud, lehed ja isegi töövihikud. Selline on selle silmuse ilu; see annab teile paindlikkuse erinevate Exceli kogudega töötamiseks.
Silmus liigub läbi iga koguväärtuse ja salvestab viite määratletud muutuja nimes. Pärast täitmist käivitab VBA tsüklis salvestatud laused ja liigub kogus järgmise objekti juurde ( järgmiseks märksõna on siin abiks). Mõistame koodi struktuuri põhinäite abil.
Kuidas kasutada iga tsükli jaoks Exceli VBA-s
Oletame, et soovite printida arvu lahtritesse A1 kuni A10. Parim viis on kasutada iga tsükli jaoks vahemiku funktsiooniga ja lasta koodil teha vajalik. Selle lihtsa ülesande saate teha järgmiselt.
kuidas ühendada xboxi kontroller Bluetoothiga
- Avage VBA koodiredaktor, vajutades Kõik + F11 .
- Sisestage moodul, klõpsates nuppu Moodul valik sees Sisestage sakk.
- Looge alamrutiin, kasutades koodiredaktori mooduli aknas käsku sub(). Veenduge, et määrate alamprogrammile tähendusliku nime. Selle näite puhul võite kasutada nime iga_tsükli jaoks .
Nüüd, kui põhitõed on käest, on aeg hakata koodi kirjutama. Sisestage alamrutiini järgmised käsud:
Dim cell as range
For each cell in Sheets("Sheet1").Range("A1:A10")
cell.value = 10
Next cell
Kui kood käivitub, siis c muutuja salvestab A1 väärtuse. Järgmisena, kui ta liigub tsükli sees lause juurde, hindab see käsku ja sisestab määratletud lahtrisse, st lahtrisse A1, väärtuse 10.
miks mu arvuti töötab 100 kettaga
Lõpuks, kui see liigub märksõnale Järgmine, liigub see järgmise väärtuse juurde, st lahtrisse A2. Silmus kulgeb, kuni see jõuab lahtrisse A10. See on lõplik väljund:
Silmuse kasutamine objektidega: lahtrid, lehed ja töövihikud
Excelil on kolm peamist objektitüüpi, millega te regulaarselt töötate. Need on lahtrid, lehed ja töövihikud. Siit saate teada, kuidas saate tsüklit kasutada kõigi kolme objektitüübiga.
Lahtrite ja silmustega koos töötamine
Oletame, et soovite lehel Sheet1 lahtrivahemikule lisada väärtuse ja mõned vormindamistingimused. Esimese sammuna peate määratlema tsükli tingimused ja seejärel vormindamiskäsud.
Sisestage alamrutiini järgmine kood.
Sub for_each_loop()
Dim c As Range
For Each c In Sheets("Sheet1").Range("A1:A10")
With c
.Value = 10
.Font.Color = vbRed
.Font.Bold = True
.Font.Strikethrough = True
End With
Next c
End Sub
The koos funktsioon on kasulik mitme funktsiooni täitmisel ühe konkreetse objektiga. Kuna soovite muutujaga c täita ülesandeid, saate need kõik kombineerida, kasutades funktsiooni koos..end koos funktsiooniga.
Silmus võrdsustab c väärtuse iga lahtri väärtusega ja sisestab väärtuseks 10. Lisaks muudab see lahtri värvi punaseks, muudab väärtuse paksuks ja kriipsutab selle läbi. Kui see on kõik sammud lõpetanud, liigub see vahemiku järgmise määratletud väärtuse juurde.
Silmuse kasutamine lehtede juhtimiseks
Sarnaselt ülaltoodud näitele saate lehtede juhtimiseks kasutada iga silmuse jaoks nuppu. Kuidas oleks, kui muudaks VBA abil lehe Sheet1 nimeks Sheet3?
Olemasoleva töölehe Excelis VBA abil ümbernimetamiseks saate kasutada järgmist koodi.
Sub for_each_loop_sheets()
For Each sht In ThisWorkbook.Sheets
If sht.Name = "Sheet1" Then
sht.Name = "Sheet3"
End If
Next sht
End Sub
Kood läbib töövihiku iga lehe ja kontrollib iga lehe nime. Kui see kohtab nime Sheet1, muudab see selle nimeks Sheet3. See edeneb töövihiku ülejäänud lehtede vahel, kui neid on. Kui koodi täitmine jõuab viimasele lehele, väljub see tsüklist ja alamrutiinist.
Mõne muu levinuma kasutuse hulgas saate seda teha liita mitu töölehte VBA abil ja värskendage sisu silmuste abil ühel lehel.
kuidas näha viinapuudel vanu meeldimisi
Lülitage tsükliga töövihikuid läbi
Lõpuks saate kasutada iga tsükli jaoks nuppu, et liikuda erinevate töövihikute vahel ja täita konkreetseid ülesandeid. Demonstreerime seda funktsiooni näitega.
VBA käskude abil saate lisada kolm uut töövihikut ja sulgeda kõik avatud töövihikud. Seda saate teha järgmiselt.
Sub loop_wrkbook()
Dim wrkbook as workbook
Workbooks.Add
Workbooks.Add
Workbooks.Add
For Each wrkbook In Workbooks
wrkbook.
Next wrkbook
End Sub