VBA minden példához (gyorsreferencia)

Ez az oktatóanyag példákat mutat a VBA For For Loop használatára. Kattintson ide, hogy többet megtudjon a hurkokról általában.

Minden hurokhoz

A For Every Loop lehetővé teszi a ciklus folytatását minden egyes tárgy a gyűjteményben:

  • Minden sejt egy tartományban
  • Minden munkalap egy munkafüzetben
  • Minden nyitott munkafüzet
  • Minden alakzat egy munkalapon
  • Minden elem egy tömbben
  • és több!

Mindegyikhez: alapvető példák

Ezek a példák bemutatják, hogyan kell beállítani, hogy az egyes hurkok különböző típusú objektumokon keresztül ciklusozzanak.

Loop Through Cells

Ez az eljárás végigmegy az A1: A10 tartomány minden celláján, és a cellát önmagával egyenlőre állítja.

12345678 Sub ForEachCell ()Dim cella mint tartományA táblázatok minden cellájához ("Sheet1"). Tartomány ("A1: A10")Cell.Offset (0, 1) .value = Cell.valueKövetkező cellaEnd Sub

Loop Sheets

Ez az eljárás végiglapozza a munkafüzet minden lapját, és minden lapot felold.

12345678 Sub ForEachSheets ()Dim ws munkalapkéntMinden ws -hez a Táblázatokbanws.Visible = IgazKövetkező lapEnd Sub

Ismétlődő munkafüzetek

Ez az eljárás végigmegy minden munkafüzeten, bezárja mindegyiket.

12345678 Sub ForEachWorkbooks ()Dim wb Mint munkafüzetMinden wb -hez a munkafüzetekbenwb. BezárKövetkező wbEnd Sub

Hurok alakzatok

Ez az eljárás végigfut a Sheet1 minden alakzatán, és mindegyiket törli.

12345678 Sub ForEachShape ()Dim Shp mint alakMinden Shp In Sheets ("Sheet1"). AlakzatokShp. TörlésKövetkező ShpEnd Sub

Loop Through Charts

Ez az eljárás végigfut a Sheet1 minden diagramján, és mindegyiket törli.

12345678 Sub ForEachCharts ()Dim cht Mint ChartObjectMinden cht In Sheets ("Sheet1"). ChartObjectscht. TörlésKövetkező chtEnd Sub

Lépés a PivotTable -ek között

Ez az eljárás végigmegy az 1. lapon lévő minden kimutatáson, és törli mindegyiket

12345678 Sub ForEachPivotTables ()Dim pvt PivotTable -kéntMinden Pvt In Sheets ("Sheet1"). PivotTablepvt.ClearTableKövetkező pvtEnd Sub

Loop keresztül táblázatok

Ez az eljárás végigmegy az 1. táblázat minden tábláján, és mindegyiket törli.

12345678 Sub ForEachTables ()Dim tbl ListObject -kéntMinden tbl In Sheets ("Sheet1"). ListObjectstbl.DeleteKövetkező tblEnd Sub

Loop keresztül elemek tömb

Ez az eljárás végigmegy a tömb minden elemén, megjeleníti az egyes értékeket egy msgboxban,

12345678910 Sub ForEachItemInArray ()Dim arrValue VariantkéntDim Dimension VariantarrValue = Tömb ("1. tétel", "2. tétel", "3. tétel")Minden tételhez In arrValueMsgBox elemKövetkező tételEnd Sub

Loop keresztül számok

Ez az eljárás végigmegy a tömb minden számán, megjeleníti az egyes értékeket egy msgboxban,

12345678910111213 Sub ForEachNumberInNumbers ()Dim arrNumber (1-3) Egész számkéntDim szám VáltozatkéntarrNumber (1) = 10arrNumber (2) = 20arrNumber (3) = 30Minden szám In arrNumberÜzenetek számaKövetkező számEnd Sub

Minden huroképítőhöz

A cikkben szereplő példák a Huroképítő miénkben VBA bővítmény: AutoMacro.

Az Huroképítő nagyon megkönnyíti az objektumok közötti ciklushoz szükséges kód generálását. AutoMacro sok mást is tartalmaz Kódgenerátorok, kiterjedt Kódkönyvtár, és erőteljes Kódolási eszközök.

Mindegyikhez - Ha

Az If Statements segítségével a hurkokon belül is ellenőrizheti, hogy az objektumok megfelelnek -e bizonyos feltételeknek, és csak azokon az objektumokon hajt végre műveleteket, amelyek megfelelnek a feltételeknek. Íme egy példa arra, hogy a tartomány minden celláján keresztül kell ciklusozni:

A tartomány minden cellájára - ha

1234567891011121314 If_Loop () alDim cella mint tartományA tartomány minden cellájához ("A2: A6")Ha Cell.Value> 0 AkkorCell.Offset (0, 1) .Value = "Pozitív"Egyébként Cell.Érték <0 AkkorCell.Offset (0, 1) .Value = "Negative"MásCell.Offset (0, 1) .Value = "Zero"Vége HaKövetkező cellaEnd Sub

Minden gyakori példa esetében

Zárja be az összes munkafüzetet

Ez az eljárás bezárja az összes nyitott munkafüzetet, mentve a módosításokat.

123456789 Sub CloseAllWorkbooks ()Dim wb Mint munkafüzetMinden wb -hez a munkafüzetekbenwb. Bezárás SaveChanges: = IgazKövetkező wbEnd Sub

Minden lap elrejtése

Ez az eljárás elrejti az összes munkalapot.

12345678 All HideAllSheets ()Dim ws munkalapkéntMinden ws -hez a Táblázatokbanws.Visible = xlSheetHiddenKövetkező wsEnd Sub

Minden lap megjelenítése

Ez az eljárás megjeleníti az összes munkalapot.

12345678 Sub UnhideAllSheets ()Dim ws munkalapkéntMinden ws -hez a Táblázatokbanws.Visible = xlSheetVisibleKövetkező wsEnd Sub

Minden lap védelme

Ez az eljárás védi az összes munkalapot.

12345678 Sub ProtectAllSheets ()Dim ws munkalapkéntMinden ws -hez a Táblázatokbanws.Protect Jelszó: = "…"Következő wsEnd Sub

Minden lap védelmének feloldása

Ez az eljárás megszünteti az összes munkalap védelmét.

12345678 All UnprotectAllSheets ()Dim ws munkalapkéntMinden ws -hez a Táblázatokbanws.Unprotect Password: = "…"Következő wsEnd Sub

Minden alakzat törlése az összes munkalapon

Ez az eljárás törli a munkafüzet összes alakzatát.

123456789101112 Sub DeleteAllShapesOnAllWorksheets ()Lemez homályosítása munkalapkéntDim Shp mint alakMinden ws -hez a TáblázatokbanMinden Shp In ws.ShapesShp. TörlésKövetkező ShpKövetkező wsEnd Sub

Az összes kimutatás frissítése

Ez az eljárás frissíti a lap összes kimutatását.

12345678 Sub RefreshAllPivotTables ()Dim pvt PivotTable -kéntMinden Pvt In Sheets ("Sheet1"). PivotTablepvt.RefreshTableKövetkező pvtEnd Sub

Használata Mindenkinek az Access VBA -ban

A For For hurok ugyanúgy működik az Access VBA -ban, mint az Excel VBA -ban. A következő példa eltávolítja az összes adatbázist az aktuális adatbázisból.

123456789 Sub RemoveAllTables ()Dim tdf TableDef névenDim dbs mint adatbázisÁllítsa be a dbs = CurrentDb értéketMinden tdf esetén dbs.TableDefsDoCmd.DeleteObject tdf.NameHurokSet dbs = SemmiEnd Sub

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave