VBA for hvert eksempel (Hurtigreferanse)

Denne opplæringen viser deg eksempler på bruk av For Every Loop i VBA. Klikk her for å lære mer om sløyfer generelt.

For hver sløyfe

For hver sløyfe lar deg gå gjennom Hver objekt i en samling:

  • Alle celler i et område
  • Alle regneark i en arbeidsbok
  • Alle åpne arbeidsbøker
  • Alle former i et regneark
  • Alle elementene i en matrise
  • og mer!

For hver: grunnleggende eksempler

Disse eksemplene vil demonstrere hvordan du konfigurerer For Each loop til å gå gjennom forskjellige typer objekter.

Sløyfe gjennom celler

Denne prosedyren går gjennom hver celle i område A1: A10, og setter cellen til at den er riktig lik seg selv.

12345678 Sub ForEachCell ()Dim Cell As RangeFor hver celle i ark ("Ark1"). Område ("A1: A10")Cell.Offset (0, 1) .verdi = Cell.verdiNeste celleSlutt Sub

Sløyfe gjennom ark

Denne prosedyren går gjennom hvert ark i en arbeidsbok, og hvert ark vises ikke.

12345678 Sub ForEachSheets ()Dim ws Som regnearkFor hver gang i arkws.Visible = TrueNeste arkSlutt Sub

Sløyfe gjennom arbeidsbøker

Denne prosedyren går gjennom hver arbeidsbok og lukker hver.

12345678 Sub ForEachWorkbooks ()Dim wb Som arbeidsbokFor hver wb i arbeidsbøkerwb.LukkNeste wbSlutt Sub

Sløyfe gjennom former

Denne prosedyren går gjennom hver form i Sheet1 og sletter hver.

12345678 Sub ForEachShape ()Dim Shp som formFor hvert ark i ark ("Ark1"). FormerShp. SlettNeste ShpSlutt Sub

Sløyfe gjennom diagrammer

Denne prosedyren går gjennom hvert diagram i ark1 og sletter hvert enkelt.

12345678 Sub ForEachCharts ()Dim cht As ChartObjectFor hver del i ark ("Ark1"). ChartObjectscht. SlettNeste kapSlutt Sub

Sløyfe gjennom pivottabeller

Denne prosedyren går gjennom hver pivottabell i Sheet1 og fjerner hver enkelt

12345678 Sub ForEachPivotTables ()Dim pvt som pivottabellFor hver pvt In Sheets ("Sheet1"). Pivottabellerpvt.ClearTableNeste pvtSlutt Sub

Sløyfe gjennom tabeller

Denne prosedyren går gjennom hver tabell i ark1 og sletter hver enkelt.

12345678 Sub ForEachTables ()Dim tbl As ListObjectFor hver tbl i ark ("Ark1"). ListObjectstbl.SlettNeste tblSlutt Sub

Sløyfe gjennom elementer i matrise

Denne prosedyren går gjennom hvert element i en matrise, viser hver verdi i en meldingsboks,

12345678910 Sub ForEachItemInArray ()Dim arrValue som variantDim element som variantarrValue = Array ("Item 1", "Item 2", "Item 3")For hvert element i arrValueMsgBox -vareNeste elementSlutt Sub

Sløyfe gjennom tall

Denne prosedyren går gjennom hvert nummer i en matrise, viser hver verdi i en meldingsboks,

12345678910111213 Sub ForEachNumberInNumbers ()Dim arrNumber (1 til 3) som heltallDim num Som variantarrNumber (1) = 10arrNumber (2) = 20arrNumber (3) = 30For hvert nummer i arrNumberMeldingsnummerNeste nummerSlutt Sub

For hver sløyfebygger

Eksemplene i denne artikkelen ble bygget med Loop Builder i vår VBA-tillegg: AutoMacro.

De Loop Builder gjør det veldig enkelt å generere kode for å gå gjennom objekter. AutoMacro inneholder også mange andre Kodegeneratorer, en omfattende Kodebibliotek, og kraftig Kodingsverktøy.

For hver - Hvis

Du kan også bruke If -setninger i looper for å teste om objekter oppfyller visse kriterier, bare utføre handlinger på objektene som oppfyller kriteriene. Her er et eksempel på sløyfe gjennom hver celle i et område:

For hver celle i området - hvis

1234567891011121314 Sub If_Loop ()Dim Cell som RangeFor hver celle i området ("A2: A6")Hvis Cell.Value> 0 DaCell.Offset (0, 1) .Value = "Positive"ElseIf Cell.Value <0 DaCell.Offset (0, 1) .Value = "Negativ"EllersCell.Offset (0, 1) .Value = "Null"Slutt omNeste celleSlutt Sub

For hver vanlige eksempler

Lukk alle arbeidsbøker

Denne prosedyren vil lukke alle åpne arbeidsbøker og lagre endringer.

123456789 Sub CloseAllWorkbooks ()Dim wb Som arbeidsbokFor hver wb i arbeidsbøkerwb.Close SaveChanges: = TrueNeste wbSlutt Sub

Skjul alle ark

Denne fremgangsmåten vil skjule alle regneark.

12345678 Sub HideAllSheets ()Dim ws Som regnearkFor hver gang i arkws.Visible = xlSheetHiddenNeste wsSlutt Sub

Vis alle ark

Denne fremgangsmåten vil vise alle regneark.

12345678 Sub UnhideAllSheets ()Dim ws Som regnearkFor hver gang i arkws.Visible = xlSheetVisibleNeste wsSlutt Sub

Beskytt alle ark

Denne fremgangsmåten vil beskytte alle regneark.

12345678 Sub ProtectAllSheets ()Dim ws Som regnearkFor hver gang i arkws.Protect Password: = "…"Neste wsSlutt Sub

Fjern beskyttelsen av alle ark

Denne fremgangsmåten vil fjerne beskyttelsen av alle regneark.

12345678 Sub UnprotectAllSheets ()Dim ws Som regnearkFor hver gang i arkws.Unprotect Password: = "…"Neste wsSlutt Sub

Slett alle former på alle regneark

Denne prosedyren sletter alle former i en arbeidsbok.

123456789101112 Sub DeleteAllShapesOnAllWorksheets ()Dim ark som regnearkDim Shp som formFor hver gang i arkFor hver Shp In ws.ShapesShp. SlettNeste ShpNeste wsSlutt Sub

Oppdater alle pivottabeller

Denne prosedyren vil oppdatere alle pivottabeller på et ark.

12345678 Sub RefreshAllPivotTables ()Dim pvt som pivottabellFor hver pvt In Sheets ("Sheet1"). Pivottabellerpvt.RefreshTableNeste pvtSlutt Sub

Bruker For Each in Access VBA

For hver sløyfe fungerer på samme måte i Access VBA som i Excel VBA. Følgende eksempel vil fjerne alle tabellene i den nåværende databasen.

123456789 Sub RemoveAllTables ()Dim tdf As TableDefDim dbs som databaseSett dbs = CurrentDbFor hver tdf I dbs.TableDefsDoCmd.DeleteObject tdf.NameLøkkeSett dbs = ingentingSlutt Sub

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave