Ovaj će vam vodič pokazati primjere korištenja For Every Loop u VBA. Kliknite ovdje da biste općenito saznali više o petljama.
Za svaku petlju
For Every Loop omogućuje vam petlju svaki objekt u zbirci:
- Sve ćelije u rasponu
- Svi radni listovi u radnoj bilježnici
- Sve otvorene radne bilježnice
- Svi oblici na radnom listu
- Sve stavke u nizu
- i više!
Za svaki: Osnovni primjeri
Ovi primjeri pokazat će kako postaviti Za svaku petlju petlju kroz različite vrste objekata.
Petlja kroz ćelije
Ovaj postupak će prolaziti kroz svaku ćeliju u rasponu A1: A10, postavljajući ćeliju na pravo jednaku samoj sebi.
12345678 | Sub ForEachCell ()Dim Cell As RangeZa svaku ćeliju u listovima ("List 1"). Raspon ("A1: A10")Cell.Offset (0, 1) .value = Cell.valueSljedeća ćelijaKraj podm |
Petlje kroz listove
Ovaj postupak će proći kroz svaki list u radnoj knjizi, otkrivajući svaki list.
12345678 | Pod ForEachSheets ()Zatamni kao radni listZa svaki ws u listovimaws.Visible = IstinaSljedeći listKraj podm |
Prođite kroz radne sveske
Ovaj postupak će proći kroz svaku radnu knjigu, zatvarajući svaku.
12345678 | Sub ForEachWorkbooks ()Dim wb Kao radna bilježnicaZa svaku wb u radnim bilježnicamawb.ZatvoriSljedeća wbKraj podm |
Petlje kroz oblike
Ovaj postupak će proći kroz svaki oblik u Sheet1, brišući svaki.
12345678 | Sub ForEachShape ()Dim Shp kao oblikZa svaki Shp In Sheets ("Sheet1"). ObliciShp.DeleteSljedeći ShpKraj podm |
Petlje kroz grafikone
Ovaj postupak će proći kroz svaki grafikon u Sheet1, brišući svaki.
12345678 | Pod ForEachCharts ()Zatamni kao ChartObjectZa svaki cht In Sheets ("Sheet1"). ChartObjectscht.BrisatiSljedeće poglKraj podm |
Prolaz kroz zaokretne tablice
Ovaj postupak će proći kroz svaku zaokretnu tablicu u Sheet1, brišeći svaku
12345678 | Pod ForEachPivotTables ()Zatamni pvt kao zaokretnu tablicuZa svaki pvt u tablicama ("List1"). Zaokretne tablicepvt.ClearTableSljedeći pvtKraj podm |
Petlje kroz tablice
Ovaj postupak će proći kroz svaku tablicu u listu 1, brišeći svaku.
12345678 | Pod ForEachTables ()Dim tbl Kao ListObjectZa svaki tbl In Sheets ("Sheet1"). ListObjectstbl.BrisatiSljedeći tblKraj podm |
Petlje kroz stavke u nizu
Ovaj postupak će proći kroz svaku stavku u nizu, prikazati svaku vrijednost u okviru za poruke,
12345678910 | Sub ForEachItemInArray ()Dim arrValue As VariantPriguši stavku kao varijantuarrValue = Polje ("Stavka 1", "Stavka 2", "Stavka 3")Za svaku stavku u arrValueStavka msgBoxSljedeća stavkaKraj podm |
Petlja kroz brojeve
Ovaj postupak će proći kroz svaki broj u nizu, prikazati svaku vrijednost u okviru za poruke,
12345678910111213 | Pod ForEachNumberInNumbers ()Dim arrNumber (1 To 3) As IntegerDim num As VariantarrNumber (1) = 10arrNumber (2) = 20arrNumber (3) = 30Za svaki broj U arrNumberMsgbox No.Sljedeći brojKraj podm |
Za svakog graditelja petlji
Primjeri u ovom članku izgrađeni su pomoću Loop Builder u našem VBA dodatak: AutoMacro.
The Loop Builder čini vrlo lakim generiranje koda za prolaz kroz objekte. AutoMacro sadrži i mnoge druge Generatori kodova, opsežan Knjižnica kodova, i moćan Alati za kodiranje.
Za svaku - Ako
Također možete koristiti If naredbe unutar petlji za testiranje zadovoljavaju li objekti određene kriterije, samo izvođenje radnji na onim objektima koji zadovoljavaju kriterije. Evo primjera petlje kroz svaku ćeliju u rasponu:
Za svaku stanicu u rasponu - Ako
1234567891011121314 | Sub If_Loop ()Prigušena ćelija kao rasponZa svaku ćeliju u rasponu ("A2: A6")Ako je Cell.Value> 0 TadaCell.Offset (0, 1) .Value = "Pozitivno"Ostala ćelija.Vrijednost <0 ZatimCell.Offset (0, 1) .Value = "Negativno"DrugoCell.Offset (0, 1) .Value = "Nula"Završi akoSljedeća ćelijaKraj podm |
Za svaki uobičajeni primjer
Zatvorite sve radne knjige
Ovaj postupak će zatvoriti sve otvorene radne knjige i spremiti promjene.
123456789 | Sub CloseAllWorkbooks ()Dim wb Kao radna bilježnicaZa svaku wb u radnim bilježnicamawb.Zatvori Spremi promjene: = IstinaSljedeća wbKraj podm |
Sakrij sve tablice
Ovaj postupak će sakriti sve radne listove.
12345678 | Sub HideAllSheets ()Zatamni kao radni listZa svaki ws u listovimaws.Visible = xlSheetHiddenSljedeći wsKraj podm |
Otkrij sve tablice
Ovaj postupak će otkriti sve radne listove.
12345678 | Sub UnhideAllSheets ()Zatamni kao radni listZa svaki ws u listovimaws.Visible = xlSheetVisibleSljedeći wsKraj podm |
Zaštitite sve listove
Ovaj postupak će zaštititi sve radne listove.
12345678 | Sub ProtectAllSheets ()Zatamni kao radni listZa svaki ws u listovimaws.Zaštita lozinke: = "…"Sljedeći wsKraj podm |
Uklonite zaštitu sa svih tablica
Ovaj postupak će ukloniti zaštitu sa svih radnih listova.
12345678 | Pod UnprotectAllSheets ()Zatamni kao radni listZa svaki ws u listovimaws.Unprotect Password: = "…"Sljedeći wsKraj podm |
Izbriši sve oblike na svim radnim listovima
Ovim postupkom izbrisat će se svi oblici u radnoj knjizi.
123456789101112 | PodizbrišiAllShapesOnAllWorksheets ()Zatamnjeni list kao radni listDim Shp kao oblikZa svaki ws u listovimaZa svaki Shp U ws.ShapesShp.DeleteSljedeći ShpSljedeći wsKraj podm |
Osvježite sve zaokretne tablice
Ovaj postupak će osvježiti sve zaokretne tablice na listu.
12345678 | Sub RefreshAllPivotTables ()Zatamni pvt kao zaokretnu tablicuZa svaki pvt u tablicama ("List1"). Zaokretne tablicepvt.Osvježi tablicuSljedeći pvtKraj podm |
Korištenje za svakog u Accessu VBA
Petlja For Each funkcionira na isti način u programu Access VBA kao i u programu Excel VBA. Sljedeći primjer uklonit će sve tablice u trenutnoj bazi podataka.
123456789 | Sub RemoveAllTables ()Dim tdf Kao TableDefDim dbs kao baza podatakaPostavite dbs = CurrentDbZa svaki tdf U dbs.TableDefsDoCmd.DeleteObject tdf.NamePetljaPostavite dbs = NištaKraj podm |