Šī apmācība parādīs piemērus katrai cilpai VBA. Noklikšķiniet šeit, lai uzzinātu vairāk par cilpām kopumā.
Katrai cilpai
Katrai cilpai ļauj iziet cauri katrs objekts kolekcijā:
- Visas šūnas diapazonā
- Visas darblapas darbgrāmatā
- Visas atvērtās darbgrāmatas
- Visas formas darblapā
- Visi vienumi masīvā
- un vēl!
Katram: pamata piemēri
Šie piemēri parādīs, kā iestatīt katrai cilpai cilpu caur dažāda veida objektiem.
Cilpa caur šūnām
Šī procedūra pārvietosies pa katru šūnu diapazonā A1: A10, iestatot šūnu tā, lai tā būtu vienāda ar sevi.
12345678 | Sub ForEachCell ()Dim šūna kā diapazonsKatrai izklājlapu šūnai ("Sheet1"). Diapazons ("A1: A10")Šūna.Pārbīdes (0, 1) .value = Cell.valueNākamā šūnaBeigu apakš |
Loop Sheets
Šī procedūra pārvietos katru darbgrāmatas lapu, atverot katru lapu.
12345678 | Sub ForEachSheets ()Dim ws kā darblapaPar katru ws In Sheetsws.Visible = TrueNākamā lapaBeigu apakš |
Izsekojiet darbgrāmatas
Šī procedūra pārcels katru darbgrāmatu, aizverot katru.
12345678 | Sub ForEachWorkbooks ()Dim wb kā darbgrāmataPar katru wb darbgrāmatāswb. AizvērtNākamais wbBeigu apakš |
Cilpa caur formām
Šī procedūra cilpā caurskatīs katru Sheet1 formu, dzēšot katru.
12345678 | Sub ForEachShape ()Dim Shp kā formaKatram Shp In Sheets ("Sheet1"). FormasShp. DzēstNākamais ShpBeigu apakš |
Cilpu diagrammas
Šī procedūra pārvietos katru diagrammu lapā 1, dzēšot katru.
12345678 | Katrai diagrammai ()Dim cht Kā ChartObjectKatram cht lapās ("Sheet1"). ChartObjectscht. DzēstNākamais chtBeigu apakš |
Izslēgt rakurstabulas
Šī procedūra pārvietosies pa katru lapas 1 rakurstabulu, notīrot katru no tām
12345678 | Sub ForEachPivotTables ()Dim pvt kā rakurstabulaKatram pvt loksnēs ("Sheet1"). PivotTablepvt.ClearTableNākamais pvtBeigu apakš |
Izslēgt tabulas
Šī procedūra pāries visas lapas 1 tabulas, dzēšot katru.
12345678 | Sub ForEachTables ()Dim tbl kā ListObjectPar katru tbl In Sheets ("Sheet1"). ListObjectstbl. DzēstNākamais tblBeigu apakš |
Izslēgt vienumus masīvā
Šī procedūra apritēs katru masīva vienumu, parādīs katru vērtību ziņojuma lodziņā,
12345678910 | Sub ForEachItemInArray ()Dim arrValue Kā variantsDim postenis kā variantsarrValue = Masīvs ("Vienums 1", "Vienums 2", "Vienums 3")Par katru vienumu In arrValueMsgBox vienumsNākamais vienumsBeigu apakš |
Cilpa caur cipariem
Šī procedūra apritēs katru masīva numuru, parādīs katru vērtību ziņojuma lodziņā,
12345678910111213 | Sub ForEachNumberInNumbers ()Dim arrNumber (1 līdz 3) Kā vesels skaitlisDim num Kā variantsarrNumber (1) = 10arrNumber (2) = 20arrNumber (3) = 30Par katru numuru In arrNumberMsgbox numursNākamais numursBeigu apakš |
Katram cilpu veidotājam
Šajā rakstā minētie piemēri tika veidoti ar Cilpu veidotājs mūsu VBA pievienojumprogramma: AutoMacro.
The Cilpu veidotājs atvieglo koda ģenerēšanu, lai cilpotu objektus. AutoMacro satur arī daudzus citus Kodu ģeneratori, plašs Kodu bibliotēka, un spēcīgs Kodēšanas rīki.
Katram - Ja
Varat arī izmantot cilnē If Statements, lai pārbaudītu, vai objekti atbilst noteiktiem kritērijiem, veicot tikai darbības ar tiem objektiem, kas atbilst kritērijiem. Tālāk ir sniegts piemērs, kā atkārtot katru diapazona šūnu:
Katrai diapazona šūnai - ja
1234567891011121314 | Apakš If_Loop ()Dim šūna kā diapazonsKatrai diapazona šūnai ("A2: A6")Ja šūna.vērtība> 0 TadŠūna. Nobīde (0, 1). Vērtība = "Pozitīvs"ElseIf Cell.Value <0 TadŠūna.Pārvietojums (0, 1). Vērtība = "Negatīvs"CitādiŠūna. Nobīde (0, 1). Vērtība = "Nulle"Beigas JaNākamā šūnaBeigu apakš |
Katram izplatītākajam piemēram
Aizveriet visas darbgrāmatas
Šī procedūra aizvērs visas atvērtās darbgrāmatas, saglabājot izmaiņas.
123456789 | Sub CloseAllWorkbooks ()Dim wb kā darbgrāmataPar katru wb darbgrāmatāswb. Aizvērt SaveChanges: = TrueNākamais wbBeigu apakš |
Slēpt visas lapas
Šī procedūra paslēps visas darblapas.
12345678 | Sub HideAllSheets ()Dim ws kā darblapaPar katru ws In Sheetsws.Visible = xlSheetHiddenNākamais wsBeigu apakš |
Rādīt visas lapas
Šī procedūra parādīs visas darblapas.
12345678 | Sub UnhideAllSheets ()Dim ws kā darblapaPar katru ws In Sheetsws.Visible = xlSheetVisibleNākamais wsBeigu apakš |
Aizsargājiet visas lapas
Šī procedūra aizsargās visas darblapas.
12345678 | Sub ProtectAllSheets ()Dim ws kā darblapaPar katru ws In Sheetsws.Protect Parole: = "…"Nākamais wsBeigu apakš |
Atcelt visu lapu aizsardzību
Šī procedūra noņems visu darblapu aizsardzību.
12345678 | Sub UnprotectAllSheets ()Dim ws kā darblapaPar katru ws In Sheetsws.Aizsargāt paroli: = "…"Nākamais wsBeigu apakš |
Dzēst visas formas visās darblapās
Šī procedūra izdzēsīs visas darbgrāmatas formas.
123456789101112 | Sub DeleteAllShapesOnAllWorksheets ()Dim lapa kā darblapaDim Shp kā formaPar katru ws In SheetsPar katru Shp In ws.ShapesShp. DzēstNākamais ShpNākamais wsBeigu apakš |
Atsvaidzināt visas rakurstabulas
Šī procedūra atsvaidzinās visas lapas rakurstabulas.
12345678 | Sub RefreshAllPivotTables ()Dim pvt kā rakurstabulaKatram pvt loksnēs ("Sheet1"). PivotTablepvt.RefreshTableNākamais pvtBeigu apakš |
Lietošana katram Access VBA
Cilne Par katru cilni Access VBA darbojas tāpat kā Excel VBA. Šis piemērs noņems visas pašreizējās datu bāzes tabulas.
123456789 | Sub RemoveAllTables ()Dim tdf Kā TableDefDim dbs kā datu bāzeIestatīt dbs = CurrentDbPar katru tdf In dbs.TableDefsDoCmd.DeleteObject tdf.NameCilpaSet dbs = NekasBeigu apakš |