VBA for hvert eksempel (hurtig reference)

Denne vejledning viser dig eksempler på brug af For Every Loop i VBA. Klik her for at lære mere om sløjfer generelt.

For hver sløjfe

For hver sløjfe giver dig mulighed for at sløjfe igennem hver objekt i en samling:

  • Alle celler i et område
  • Alle regneark i en projektmappe
  • Alle åbne projektmapper
  • Alle former i et regneark
  • Alle elementer i en matrix
  • og mere!

For hver: Grundlæggende eksempler

Disse eksempler viser, hvordan du konfigurerer For Hver sløjfer til at gå gennem forskellige typer objekter.

Sløjfe gennem celler

Denne procedure løber gennem hver celle i område A1: A10 og sætter cellen til at være lige lig med sig selv.

12345678 Sub ForEachCell ()Dim celle som rækkeviddeFor hver celle i ark ("Ark1"). Område ("A1: A10")Cell.Offset (0, 1) .værdi = Cell.værdiNæste celleAfslut Sub

Sløjfe gennem ark

Denne procedure går gennem hvert ark i en projektmappe, og hvert ark vises ikke.

12345678 Sub ForEachSheets ()Dim ws Som regnearkFor hver gang i arkws.Visible = TrueNæste arkAfslut Sub

Sløjfe gennem arbejdsbøger

Denne procedure går gennem hver projektmappe og lukker hver enkelt.

12345678 Sub ForEachWorkbooks ()Dim wb Som projektmappeFor hver wb i projektmapperwb.LukNæste wbAfslut Sub

Sløjfe gennem former

Denne procedure går gennem hver form i Sheet1 og sletter hver enkelt.

12345678 Sub ForEachShape ()Dim Shp som formFor hvert ark i ark ("Ark1"). FormerShp. SletNæste ShpAfslut Sub

Sløjfe gennem diagrammer

Denne procedure går gennem hvert diagram i Sheet1 og sletter hvert enkelt.

12345678 Sub ForEachCharts ()Dim cht som ChartObjectFor hver cht In Sheets ("Sheet1"). ChartObjectscht.SletNæste kapAfslut Sub

Sløjfe gennem pivottabeller

Denne procedure går gennem hver pivottabel i Sheet1 og rydder hver enkelt

12345678 Sub ForEachPivotTables ()Dim pvt som pivottabelFor hver pvt In Sheets ("Sheet1"). Pivottabellerpvt.ClearTableNæste pvtAfslut Sub

Sløjfe gennem tabeller

Denne procedure går gennem hver tabel i Sheet1 og sletter hver enkelt.

12345678 Sub ForEachTables ()Dim tbl som ListObjectFor hver tbl i ark ("Sheet1"). ListObjectstbl.SletNæste tblAfslut Sub

Sløjfe gennem elementer i array

Denne procedure går gennem hvert element i et array, viser hver værdi i en msgbox,

12345678910 Sub ForEachItemInArray ()Dim arrVærdi som variantDim element som variantarrValue = Array ("Item 1", "Item 2", "Item 3")For hver vare i arrValueMsgBox VareNæste elementAfslut Sub

Sløjfe gennem tal

Denne procedure går gennem hvert nummer i et array, viser hver værdi i en msgbox,

12345678910111213 Sub ForEachNumberInNumbers ()Dim arrNumber (1 til 3) som heltalDim num Som variantarrNumber (1) = 10arrNumber (2) = 20arrNumber (3) = 30For hvert nummer i arrNumberMsgbox NumNæste nummerAfslut Sub

For hver Loop Builder

Eksemplerne i denne artikel blev bygget med Loop Builder i vores VBA-tilføjelse: AutoMacro.

Det Loop Builder gør det meget let at generere kode til at gå gennem objekter. AutoMacro indeholder også mange andre Kodegeneratorer, en omfattende Kodebibliotekog kraftfuld Kodningsværktøjer.

For hver - Hvis

Du kan også bruge If -sætninger i loops til at teste, om objekter opfylder visse kriterier, kun udføre handlinger på de objekter, der opfylder kriterierne. Her er et eksempel på sløjfe gennem hver celle i et område:

For hver celle i området - hvis

1234567891011121314 Sub If_Loop ()Dim celle som rækkeviddeFor hver celle i området ("A2: A6")Hvis Cell.Value> 0 SåCell.Offset (0, 1) .Værdi = "Positiv"ElseIf Cell.Value <0 HerefterCell.Offset (0, 1) .Value = "Negativ"AndetCell.Offset (0, 1) .Value = "Nul"Afslut HvisNæste celleAfslut Sub

For hver almindelige eksempler

Luk alle projektmapper

Denne procedure lukker alle åbne projektmapper og gemmer ændringer.

123456789 Sub CloseAllWorkbooks ()Dim wb Som projektmappeFor hver wb i projektmapperwb.Close SaveChanges: = TrueNæste wbAfslut Sub

Skjul alle ark

Denne procedure skjuler alle regneark.

12345678 Sub HideAllSheets ()Dim ws Som regnearkFor hver gang i arkws.Visible = xlSheetHiddenNæste wsAfslut Sub

Vis alle ark

Denne procedure vil vise alle regneark.

12345678 Sub UnhideAllSheets ()Dim ws Som regnearkFor hver gang i arkws.Visible = xlSheetVisibleNæste wsAfslut Sub

Beskyt alle ark

Denne procedure beskytter alle regneark.

12345678 Sub ProtectAllSheets ()Dim ws Som regnearkFor hver gang i arkws.Protect Password: = "…"Næste wsAfslut Sub

Fjern alle ark

Denne procedure fjerner beskyttelsen af ​​alle regneark.

12345678 Sub UnprotectAllSheets ()Dim ws Som regnearkFor hver gang i arkws.Unprotect Password: = "…"Næste wsAfslut Sub

Slet alle former på alle regneark

Denne procedure sletter alle former i en projektmappe.

123456789101112 Sub DeleteAllShapesOnAllWorksheets ()Dim ark som regnearkDim Shp som formFor hver gang i arkFor hver Shp In ws.ShapesShp. SletNæste ShpNæste wsAfslut Sub

Opdater alle pivottabeller

Denne procedure opdaterer alle pivottabeller på et ark.

12345678 Sub RefreshAllPivotTables ()Dim pvt som pivottabelFor hver pvt In Sheets ("Sheet1"). Pivottabellerpvt.RefreshTableNæste pvtAfslut Sub

Brug for For hver i Access VBA

For hver sløjfe fungerer på samme måde i Access VBA som i Excel VBA. Følgende eksempel fjerner alle tabellerne i den aktuelle database.

123456789 Sub RemoveAllTables ()Dim tdf As TableDefDim dbs som databaseIndstil dbs = CurrentDbFor hver tdf I dbs.TableDefsDoCmd.DeleteObject tdf.NameSløjfeIndstil dbs = IntetAfslut Sub

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave