VBA par katru piemēru (ātrā uzziņa)

Šī 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š

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave