VBA lehed - ülim juhend

See on ülim juhend Exceli arvutustabelite / töölehtedega töötamiseks.

Selle juhendi allservas oleme loonud lehtedega töötamiseks tavaliste käskude petulehe.

Lehed vs. Töölehed

VBA abil saab lehtedele viidata kahel viisil. Esimene neist on objektidega Sheets:

1 Arvutustabelid ("Leht1"). Aktiveerige

Teine on töölehtede objektiga:

1 Töölehed ("Sheet1"). Aktiveeri

99% juhtudest on need kaks objekti identsed. Tegelikult, kui olete Internetist otsinud VBA -koodi näiteid, olete ilmselt näinud mõlemat kasutatud objekti. Siin on erinevus:

Lehtede kogu sisaldab töölehti ja diagrammilehti.

Nii et kasutage arvutustabeleid, kui soovite lisada tavalisi töölehti JA diagrammilehti. Diagrammilehtede välistamiseks kasutage töölehti. Selle juhendi ülejäänud osas kasutame lehti ja töölehti vaheldumisi.

Viitelehed

Lehtedele viitamiseks on mitu erinevat viisi.

  • ActiveSheet
  • Lehekaardi nimi
  • Lehe indeksi number
  • Lehe koodi nimi

ActiveSheet

ActiveSheet on leht, mis on praegu aktiivne. Teisisõnu, kui peatasite oma koodi ja vaatasite Excelit, on see leht nähtav. Allolevas koodinäites kuvatakse sõnumikast ActiveSheet nimega.

1 MsgBox ActiveSheet.Name

Lehe nimi

Lehtedele viitamine nende vahelehe nime järgi on teile ilmselt kõige paremini tuttav:

1 Arvutustabelid ("TabName"). Aktiveerige

Lehe indeksi number

Leheindeksi number on lehevihik töövihikus. 1 on esimene leht. 2 on teine ​​leht jne:

1 Arvutustabelid (1). Aktiveeri

Lehe indeksi number - viimane leht töövihikus

Töövihiku viimasele lehele viitamiseks kasutage arvutustabelit. Viimase indeksnumbri saamiseks lugege:

1 Arvutustabelid (Sheets.Count). Aktiveeri

Leht „Koodinimi”

Lehekoodi nimi on selle objekti nimi VBA -s:

1 Koodinimi. Aktiveeri

Viitamislehed teistes töövihikutes

Lehtedele on lihtne viidata ka teistes töövihikutes. Selleks peate kasutama töövihikute objekti:

1 Töövihikud ("VBA_Examples.xlsm"). Töölehed ("Sheet1"). Aktiveeri

Tähtis: Töövihik peab olema avatud, enne kui saate töölehtedele viidata.

Aktiveeri vs valige Leht

Teises artiklis käsitleme kõike lehtede aktiveerimise ja valimise kohta. Lühike versioon on järgmine:

Kui aktiveerite lehe, muutub see ActiveSheetiks. See on leht, mida näeksite, kui vaatate oma Exceli programmi. Korraga saab aktiveerida ainult ühe lehe.

Aktiveerige leht

1 Arvutustabelid ("Leht1"). Aktiveerige

Kui valite lehe, muutub see ka ActiveSheetiks. Siiski saate valida mitu lehte korraga. Kui korraga valitakse mitu lehte, on ülemine leht ActiveSheet. Siiski saate valitud lehtedel ActiveSheet'i sisse lülitada.

Valige leht

1 Sheets ("Sheet1"). Valige

Valige mitu lehte

Kasutage massiivi, et valida mitu lehte korraga:

1 Töölehed (massiiv ("Sheet2", "Sheet3")). Valige

Töölehe muutuja

Töölehe määramine muutujale võimaldab teil töölehele viidata selle muutuja nime järgi. See säästab palju trükkimist ja muudab teie koodi hõlpsamini loetavaks. Samuti on palju muid põhjuseid, miks võiksite muutujaid kasutada.

Töölehe muutuja deklareerimiseks toimige järgmiselt.

1 Dim ws töölehena

Töölehe määramine muutujale:

1 Määra ws = Sheets ("Sheet1")

Nüüd saate oma koodis viidata töölehe muutujale:

1 ws. Aktiveeri

Sirvige kõiki töövihiku lehti

Töölehe muutujad on hädavajalikud, kui soovite töövihiku kõiki töölehti läbi vaadata. Lihtsaim viis seda teha on:

12345 Dim ws töölehenaIga töölehe töölehe jaoksMsgBox ws.nameJärgmine ws

See kood liigub läbi kõik töövihiku töölehed, näidates iga töölehe nime sõnumikastis. Kõikide töövihiku lehtede loopimine on väga kasulik mitme töölehe korraga lukustamisel / avamisel või peitmisel / peitmisel.

Töölehe kaitse

Töövihiku kaitse

Töövihiku kaitse lukustab töövihiku struktuurimuudatuste, näiteks töölehtede lisamise, kustutamise, teisaldamise või peitmise eest.

Töövihiku kaitse saate VBA abil sisse lülitada.

1 ActiveWorkbook.Protect Password: = "Parool"

või keelake töövihiku kaitse:

1 ActiveWorkbook.UnProtect Password: = "Parool"

Märkus. Saate kaitsta ka kaitset / tühistada selle ilma paroolita, jättes argumendi Parool välja:

1 ActiveWorkbook. Kaitse

Töölehe kaitse

Töölehe taseme kaitse takistab üksikute töölehtede muutmist.

Kaitske töölehte

1 Töölehed ("Sheet1"). Kaitske parooli

Tühista töölehe kaitse

1 Töölehed ("Sheet1"). Tühistage "Parooli" kaitse

Töölehtede kaitsmisel on erinevaid võimalusi (lubage vormindusmuudatusi, lubage kasutajal ridu lisada jne). Soovitame soovitud sätete salvestamiseks kasutada makrosalvesti.

Siin käsitleme täpsemalt töölehtede kaitset.

Töölehe nähtav vara

Võib -olla teate juba, et töölehti saab peita:

Töölehe nähtavuse seadeid on tegelikult kolm: nähtav, peidetud ja Väga peidetud.Peidetud lehti saab peita iga tavaline Exceli kasutaja - paremklõpsates töölehe vahekaardi alal (näidatud ülal). Väga peidetud lehti saab peita ainult VBA -koodiga või VBA -redaktoris. Töölehtede peitmiseks / peitmiseks kasutage järgmisi koodinäiteid:

Näita töölehte

1 Töölehed ("Sheet1"). Visible = xlSheetVisible

Peida tööleht

1 Töölehed ("Sheet1"). Nähtav = xlSheetHidden

Väga peidetud tööleht

1 Töölehed ("Sheet1"). Visible = xlSheetVeryHidden

Töölehe tasemel sündmused

Sündmused on käivitajad, mis võivad põhjustada sündmuste toimingute käivitamise. Näiteks saate koodi käivitada iga kord, kui töölehe lahtrit muudetakse või tööleht aktiveeritakse.

Töölehe sündmuste protseduurid tuleb paigutada töölehe moodulisse:

Töölehe sündmusi on palju. Täieliku loendi vaatamiseks minge töölehe moodulisse, valige esimesest rippmenüüst „Tööleht”. Seejärel valige teisest rippmenüüst sündmusprotseduur, et see moodulisse sisestada.

Tööleht Aktiveeri sündmus

Töölehe aktiveerimissündmused toimuvad iga kord töölehe avamisel.

123 Privaatne alamleht_Activate ()Vahemik ("A1"). ValigeEnd Sub

See kood valib lahtri A1 (lähtestab vaateala töölehe vasakus ülanurgas) iga kord, kui tööleht avatakse.

Töölehe muutmise sündmus

Töölehe muutmise sündmused käivitatakse alati, kui töölehe lahtri väärtust muudetakse. Lisateabe saamiseks lugege meie õpetust töölehe muutmise sündmuste kohta.

Töölehe petuleht

Altpoolt leiate petulehe, mis sisaldab levinud koodinäiteid VBA lehtedega töötamiseks

VBA töölehtede Cheatsheet

VBA töölehed Cheatsheet
KirjeldusKoodi näide
Lehtede viitamine ja aktiveerimine
Vahekaardi nimiArvutustabelid ("Sisend"). Aktiveeri
VBA koodi nimiLeht 1. Aktiveeri
Indeksi positsioonArvutustabelid (1). Aktiveeri
Valige Leht
Valige LehtArvutustabelid ("Sisend"). Valige
Määra muutujaDim ws töölehena
Määra ws = ActiveSheet
Nimi / ümbernimetamineActiveSheet.Name = "UusNimi"
Järgmine lehtActiveSheet.Next.Activate
Sirvige kõiki lehtiDim ws töölehena
Töölehtede iga nädala kohta
Msgbox ws.name
Järgmine ws
Sirvige valitud lehtiDim ws töölehena
Iga ws ActiveWindow.SelectedSheets
MsgBox ws.Name
Järgmine ws
Hankige ActiveSheetMsgBox ActiveSheet.Name
Lisa lehtLehed. Lisa
Lisage leht ja nimiSheets.Add.Name = "NewSheet"
Lisa leht nimega lahtristSheets.Add.Name = vahemik ("a3")
Lisa leht teise järelSheets.Add After: = Sheets ("Sisend")
Lisa leht pärast ja nimiSheets.Add (After: = Sheets ("Input")). Name = "NewSheet"
Lisa leht enne ja nimiSheets.Add (Enne: = Sheets ("Sisend")). Nimi = "NewSheet"
Lisage leht töövihiku lõppuArvutustabelid. Lisage pärast: = Lehed (Sheets.Count)
Lisage leht töövihiku algusesseSheets.Add (Enne: = Sheets (1)). Name = "FirstSheet"
Lisa leht muutujaleDim ws töölehena
Määra ws = Sheets.Add
Kopeeri töölehed
Liigutage leht töövihiku lõppuArvutustabelid ("Leht1"). Liigu pärast: = Arvutustabelid (Sheets.Count)
Uue töövihiku juurdeArvutustabelid ("Leht1"). Kopeeri
Valitud lehed uude töövihikusseActiveWindow.SelectedSheets.Copy
Enne teist lehteSheets ("Sheet1"). Copy Before: = Sheets ("Sheet2")
Enne esimest lehteArvutustabelid ("leht 1"). Kopeeri enne: = lehed (1)
Pärast viimast lehteArvutustabelid ("Sheet1"). Kopeeri pärast: = Sheets (Sheets.Count)
Kopeeri ja nimiArvutustabelid ("Sheet1"). Kopeeri pärast: = Sheets (Sheets.Count)
ActiveSheet.Name = "Viimane leht"
Kopeeri ja nimi lahtri väärtusestArvutustabelid ("Sheet1"). Kopeeri pärast: = Sheets (Sheets.Count)
ActiveSheet.Name = Vahemik ("A1"). Väärtus
Teise töövihiku juurdeArvutustabelid ("Leht1"). Kopeeri enne: = Töövihikud ("Näide.xlsm"). Lehed (1)
Peida / peida lehed
Peida lehtArvutustabelid ("leht 1"). Nähtav = vale
või
Arvutustabelid ("Leht1"). Nähtav = xlSheetHidden
Lehe peitmineLehed ("Sheet1"). Visible = True
või
Arvutustabelid ("Leht1"). Visible = xlSheetVisible
Väga peidetud lehtArvutustabelid („Leht1”). Visible = xlSheetVeryHidden
Kustuta või kustuta lehed
Kustuta lehtArvutustabelid ("Leht1"). Kustuta
Lehe kustutamine (veakäsitlus)Vea korral Jätka järgmist
Arvutustabelid ("Leht1"). Kustuta
Viga GoTo 0
Kustuta leht (ilma viipeta)Application.DisplayAlerts = Vale
Arvutustabelid ("Leht1"). Kustuta
Application.DisplayAlerts = Tõsi
Selge lehtLehed ("Sheet1"). Lahtrid. Selge
Ainult lehtede sisuLehed ("Sheet1"). Lahtrid. Selge sisu
Selge leht Kasutatud vahemikSheets ("Sheet1"). UsedRange.Clear
Lehtede kaitsmine või kaitsest vabastamine
Tühista kaitse (parooli pole)Arvutustabelid ("leht 1"). Kaitse eemaldamine
Tühista kaitse (parool)Arvutustabelid ("Leht1"). Tühistage "Parooli" kaitse
Kaitsta (parooli pole)Lehed ("Sheet1"). Kaitske
Kaitsta (parool)Arvutustabelid ("leht 1"). Kaitske parooli
Kaitske, kuid lubage juurdepääs VBA -leArvutustabelid ("Leht1"). Kaitse UserInterfaceOnly: = Tõsi
Tühista kõigi lehtede kaitseDim ws töölehena
Iga ws töölehtedel
ws. Kaitske parooli
Järgmine ws
wave wave wave wave wave