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 CheatsheetKirjeldus | Koodi näide |
---|---|
Lehtede viitamine ja aktiveerimine | |
Vahekaardi nimi | Arvutustabelid ("Sisend"). Aktiveeri |
VBA koodi nimi | Leht 1. Aktiveeri |
Indeksi positsioon | Arvutustabelid (1). Aktiveeri |
Valige Leht | |
Valige Leht | Arvutustabelid ("Sisend"). Valige |
Määra muutuja | Dim ws töölehena Määra ws = ActiveSheet |
Nimi / ümbernimetamine | ActiveSheet.Name = "UusNimi" |
Järgmine leht | ActiveSheet.Next.Activate |
Sirvige kõiki lehti | Dim ws töölehena Töölehtede iga nädala kohta Msgbox ws.name Järgmine ws |
Sirvige valitud lehti | Dim ws töölehena Iga ws ActiveWindow.SelectedSheets MsgBox ws.Name Järgmine ws |
Hankige ActiveSheet | MsgBox ActiveSheet.Name |
Lisa leht | Lehed. Lisa |
Lisage leht ja nimi | Sheets.Add.Name = "NewSheet" |
Lisa leht nimega lahtrist | Sheets.Add.Name = vahemik ("a3") |
Lisa leht teise järel | Sheets.Add After: = Sheets ("Sisend") |
Lisa leht pärast ja nimi | Sheets.Add (After: = Sheets ("Input")). Name = "NewSheet" |
Lisa leht enne ja nimi | Sheets.Add (Enne: = Sheets ("Sisend")). Nimi = "NewSheet" |
Lisage leht töövihiku lõppu | Arvutustabelid. Lisage pärast: = Lehed (Sheets.Count) |
Lisage leht töövihiku algusesse | Sheets.Add (Enne: = Sheets (1)). Name = "FirstSheet" |
Lisa leht muutujale | Dim ws töölehena Määra ws = Sheets.Add |
Kopeeri töölehed | |
Liigutage leht töövihiku lõppu | Arvutustabelid ("Leht1"). Liigu pärast: = Arvutustabelid (Sheets.Count) |
Uue töövihiku juurde | Arvutustabelid ("Leht1"). Kopeeri |
Valitud lehed uude töövihikusse | ActiveWindow.SelectedSheets.Copy |
Enne teist lehte | Sheets ("Sheet1"). Copy Before: = Sheets ("Sheet2") |
Enne esimest lehte | Arvutustabelid ("leht 1"). Kopeeri enne: = lehed (1) |
Pärast viimast lehte | Arvutustabelid ("Sheet1"). Kopeeri pärast: = Sheets (Sheets.Count) |
Kopeeri ja nimi | Arvutustabelid ("Sheet1"). Kopeeri pärast: = Sheets (Sheets.Count) ActiveSheet.Name = "Viimane leht" |
Kopeeri ja nimi lahtri väärtusest | Arvutustabelid ("Sheet1"). Kopeeri pärast: = Sheets (Sheets.Count) ActiveSheet.Name = Vahemik ("A1"). Väärtus |
Teise töövihiku juurde | Arvutustabelid ("Leht1"). Kopeeri enne: = Töövihikud ("Näide.xlsm"). Lehed (1) |
Peida / peida lehed | |
Peida leht | Arvutustabelid ("leht 1"). Nähtav = vale või Arvutustabelid ("Leht1"). Nähtav = xlSheetHidden |
Lehe peitmine | Lehed ("Sheet1"). Visible = True või Arvutustabelid ("Leht1"). Visible = xlSheetVisible |
Väga peidetud leht | Arvutustabelid („Leht1”). Visible = xlSheetVeryHidden |
Kustuta või kustuta lehed | |
Kustuta leht | Arvutustabelid ("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 leht | Lehed ("Sheet1"). Lahtrid. Selge |
Ainult lehtede sisu | Lehed ("Sheet1"). Lahtrid. Selge sisu |
Selge leht Kasutatud vahemik | Sheets ("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 -le | Arvutustabelid ("Leht1"). Kaitse UserInterfaceOnly: = Tõsi |
Tühista kõigi lehtede kaitse | Dim ws töölehena Iga ws töölehtedel ws. Kaitske parooli Järgmine ws |