Kuidas kasutada iga tsükli jaoks Exceli VBA-s

Kuidas kasutada iga tsükli jaoks Exceli VBA-s
Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

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
  1. Avage VBA koodiredaktor, vajutades Kõik + F11 .
  2. Sisestage moodul, klõpsates nuppu Moodul valik sees Sisestage sakk.   Exceli leht veeruväljundiga's code editor
  3. 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:





  VBA koodilõik redaktoris ja Exceli 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
  VBA koodilõik kodeerimisredaktoris

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
  VBA koodilõik redaktoris

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