Ta vadnica vam bo pokazala primere uporabe za vsako zanko v VBA. Kliknite tukaj, če želite izvedeti več o zankah na splošno.
Za vsako zanko
Za vsako zanko vam omogoča, da se preklopite vsak predmet v zbirki:
- Vse celice v razponu
- Vsi delovni listi v delovnem zvezku
- Vsi odprti delovni zvezki
- Vse oblike na delovnem listu
- Vsi elementi v matriki
- in več!
Za vsakega: Osnovni primeri
Ti primeri bodo pokazali, kako nastaviti zanke For Each za kroženje po različnih vrstah predmetov.
Zanka skozi celice
Ta postopek se bo preletel skozi vsako celico v območju A1: A10 in celico nastavil tako, da je enaka sama sebi.
12345678 | Sub ForEachCell ()Dim Cell As RangeZa vsako celico v listih ("List1"). Obseg ("A1: A10")Cell.Offset (0, 1) .value = Cell.valueNaslednja celicaEnd Sub |
Prelistajte liste
Ta postopek se bo preletel skozi vsak list v delovnem zvezku in razkril vsak list.
12345678 | Sub ForEachSheets ()Zatemni kot delovni listZa vsako ws v listihws.Visible = ResNaslednji listEnd Sub |
Prelistajte delovne zvezke
Ta postopek se bo preletel skozi vsak delovni zvezek in zaprl vsakega.
12345678 | Sub ForEachWorkbooks ()Dim wb Kot delovni zvezekZa vsako wb v delovnih zvezkihwb.ZapriNaslednja wbEnd Sub |
Krožne oblike
Ta postopek se bo preletel skozi vsako obliko v Sheet1 in izbrisal vsako.
12345678 | Sub ForEachShape ()Zatemni Shp kot oblikoZa vsako shp v listih ("list1"). OblikeShp.DeleteNaprej ShpEnd Sub |
Loop Through Charts
Ta postopek se bo preletel skozi vsak grafikon v listu 1 in vsakega izbrisal.
12345678 | Sub ForEachCharts ()Zatemni cht kot ChartObjectZa vsak cht In Sheets ("Sheet1"). ChartObjectscht.IzbrišiNaslednji chtEnd Sub |
Prenesite vrtilne tabele
Ta postopek se bo vrtel skozi vsako vrtilno tabelo v listu 1 in vsako počistil
12345678 | Sub ForEachPivotTables ()Zatemni pvt kot vrtilno tabeloZa vsak pvt v listih ("List1"). Vrtilne tabelepvt.ClearTableNaslednji pvtEnd Sub |
Prečrtajte tabele
Ta postopek se bo preletel skozi vsako tabelo v listu 1 in vsako izbrisal.
12345678 | Sub ForEachTables ()Zatemni tbl kot ListObjectZa vsak tbl v listih ("list1"). ListObjectstbl.IzbrišiNaslednja tblEnd Sub |
Preglejte elemente v nizu
Ta postopek se bo preletel skozi vsak element v nizu in prikazal vsako vrednost v polju za sporočila,
12345678910 | Sub ForEachItemInArray ()Zatemni arrValue kot variantoZatemni element kot variantoarrValue = Polje ("postavka 1", "postavka 2", "postavka 3")Za vsak predmet v arrValueMsgBox elementNaslednji elementEnd Sub |
Prenesite številke
Ta postopek se bo preletel skozi vsako številko v nizu in prikazal vsako vrednost v polju za sporočila,
12345678910111213 | Sub ForEachNumberInNumbers ()Zatemni arrNumber (1 do 3) kot celo številoDim num As VariantarrNumber (1) = 10arrNumber (2) = 20arrNumber (3) = 30Za vsako število V arrNumberSporočilo ŠtNaslednja štEnd Sub |
Za vsakega graditelja zank
Primeri v tem članku so bili zgrajeni z Graditelj zank v našem Dodatek VBA: AutoMacro.
The Graditelj zank omogoča zelo enostavno ustvarjanje kode za prehod skozi predmete. AutoMacro vsebuje tudi veliko drugih Generatorji kod, obsežen Knjižnica kodin močan Orodja za kodiranje.
Za vsakega - če
Izjave If v zankah lahko uporabite tudi za preverjanje, ali predmeti izpolnjujejo določena merila, samo za izvajanje dejanj na tistih objektih, ki izpolnjujejo merila. Tukaj je primer zanke skozi vsako celico v razponu:
Za vsako celico v dosegu - Če
1234567891011121314 | Sub If_Loop ()Zatemni celico kot obsegZa vsako celico v razponu ("A2: A6")Če je Cell.Value> 0, potemCell.Offset (0, 1) .Value = "Pozitivno"ElseIf Cell.Value <0 PotemCell.Offset (0, 1) .Value = "Negativno"Sicer paCell.Offset (0, 1) .Value = "Nič"Konec ČeNaslednja celicaEnd Sub |
Za vsak skupni primer
Zaprite vse delovne zvezke
Ta postopek zapre vse odprte delovne zvezke in shrani spremembe.
123456789 | Sub CloseAllWorkbooks ()Dim wb Kot delovni zvezekZa vsako wb v delovnih zvezkihwb.Close SaveChanges: = TrueNaslednja wbEnd Sub |
Skrij vse liste
Ta postopek bo skril vse delovne liste.
12345678 | Sub HideAllSheets ()Zatemni kot delovni listZa vsako ws v listihws.Visible = xlSheetHiddenNaslednji wsEnd Sub |
Razkrij vse liste
Ta postopek bo razkril vse delovne liste.
12345678 | Sub UnhideAllSheets ()Zatemni kot delovni listZa vsako ws v listihws.Visible = xlSheetVisibleNaslednji wsEnd Sub |
Zaščitite vse liste
Ta postopek bo zaščitil vse delovne liste.
12345678 | Sub ProtectAllSheets ()Zatemni kot delovni listZa vsako ws v listihws.Zaščitite geslo: = "…"Naslednji wsEnd Sub |
Odstranite zaščito vseh listov
Ta postopek bo odstranil zaščito z vseh delovnih listov.
12345678 | Sub UnprotectAllSheets ()Zatemni kot delovni listZa vsako ws v listihws.Unprotect Password: = "…"Naslednji wsEnd Sub |
Izbriši vse oblike na vseh delovnih listih
Ta postopek bo izbrisal vse oblike v delovnem zvezku.
123456789101112 | Sub DeleteAllShapesOnAllWorksheets ()Zatemni list kot delovni listZatemni Shp kot oblikoZa vsako ws v listihZa vsako shp v ws. OblikeShp.DeleteNaprej ShpNaslednji wsEnd Sub |
Osvežite vse vrtilne tabele
Ta postopek bo osvežil vse vrtilne tabele na listu.
12345678 | Sub RefreshAllPivotTables ()Zatemni pvt kot vrtilno tabeloZa vsak pvt v listih ("List1"). Vrtilne tabelepvt.RefreshTableNaslednji pvtEnd Sub |
Uporaba za vsakega v Accessu VBA
Zanka For Every deluje v Access VBA enako kot v Excelu VBA. Naslednji primer bo odstranil vse tabele v trenutni zbirki podatkov.
123456789 | Sub RemoveAllTables ()Zatemni tdf kot TableDefZatemni dbs kot bazo podatkovNastavite dbs = CurrentDbZa vsak tdf V dbs.TableDefsDoCmd.DeleteObject tdf.NameZankaNastavi dbs = ničEnd Sub |