Šis ir galvenais ceļvedis darbam ar izklājlapām / darblapām programmā Excel.
Šīs rokasgrāmatas apakšdaļā mēs esam izveidojuši apkrāptu lapu ar kopīgām komandām darbam ar lapām.
Loksnes vs. Darba lapas
Ir divi veidi, kā atsaukties uz lapām, izmantojot VBA. Pirmais ir ar Sheets objektu:
1 | Izklājlapas ("Sheet1"). Aktivizēt |
Otrs ir ar darblapu objektu:
1 | Darblapas ("Sheet1"). Aktivizēt |
99% gadījumu šie divi objekti ir identiski. Patiesībā, ja esat tiešsaistē meklējis VBA koda piemērus, iespējams, esat redzējis abus izmantotos objektus. Šeit ir atšķirība:
Izklājlapu kolekcijā ir darblapas UN diagrammu lapas.
Tāpēc izmantojiet Izklājlapas, ja vēlaties iekļaut parastās darblapas UN diagrammu lapas. Izmantojiet darblapas, ja vēlaties izslēgt diagrammu lapas. Pārējā šīs rokasgrāmatas daļā mēs aizstāsim lapas un darblapas.
Atsauces lapas
Ir vairāki veidi, kā atsaukties uz lapām:
- ActiveSheet
- Lapas cilnes nosaukums
- Lapas indeksa numurs
- Lapas koda nosaukums
ActiveSheet
ActiveSheet ir lapa, kas pašlaik ir aktīva. Citiem vārdiem sakot, ja apturējāt sava koda darbību un paskatījāties uz Excel, tā ir redzama lapa. Zemāk redzamajā koda piemērā tiks parādīta ziņojumu kaste ar ActiveSheet nosaukumu.
1 | MsgBox ActiveSheet.Name |
Lapas nosaukums
Jūs, iespējams, visvairāk zināt, kā atsaukties uz lapām pēc to cilnes nosaukuma:
1 | Izklājlapas ("TabName"). Aktivizēt |
Lapu indeksa numurs
Lapu indeksa numurs ir lapas atrašanās vieta darbgrāmatā. 1 ir pirmā lapa. 2 ir otrā lapa utt.:
1 | Izklājlapas (1). Aktivizēt |
Lapas indeksa numurs - pēdējā lapa darbgrāmatā
Lai atsauktos uz pēdējo darblapas lapu, izmantojiet lapu Sheets.Count, lai iegūtu pēdējo indeksa numuru:
1 | Izklājlapas (Sheets.Count). Aktivizēt |
Lapa “Koda nosaukums”
Lapas koda nosaukums ir tā objekta nosaukums VBA:
1 | Koda nosaukums. Aktivizēt |
Atsauces lapas citās darbgrāmatās
Ir arī viegli atsaukties uz lapām citās darbgrāmatās. Lai to izdarītu, jums jāizmanto darbgrāmatu objekts:
1 | Darbgrāmatas ("VBA_Examples.xlsm"). Darblapas ("Sheet1"). Aktivizēt |
Svarīgs: Darbgrāmatai ir jābūt atvērtai, pirms varat atsaukties uz to Izklājlapas.
Aktivizēt pret atlasīt lapu
Citā rakstā mēs apspriežam visu par lapu aktivizēšanu un izvēli. Īsā versija ir šāda:
Aktivizējot lapu, tā kļūst par ActiveSheet. Šī ir lapa, kuru redzētu, aplūkojot savu Excel programmu. Vienlaikus var aktivizēt tikai vienu lapu.
Aktivizēt lapu
1 | Izklājlapas ("Sheet1"). Aktivizēt |
Atlasot lapu, tā kļūst arī par ActiveSheet. Tomēr vienlaikus varat atlasīt vairākas lapas. Ja vienlaikus tiek atlasītas vairākas lapas, “augšējā” lapa ir ActiveSheet. Tomēr atlasītajās lapās varat pārslēgt ActiveSheet.
Izvēlieties lapu
1 | Izklājlapas ("Sheet1"). Atlasiet |
Atlasiet vairākas lapas
Izmantojiet masīvu, lai vienlaikus atlasītu vairākas lapas:
1 | Darblapas (masīvs ("Sheet2", "Sheet3")). Izvēlieties |
Darblapas mainīgais
Darblapas piešķiršana mainīgajam ļauj atsaukties uz darblapu pēc tā mainīgā nosaukuma. Tas var ietaupīt daudz rakstīšanas un atvieglot jūsu koda lasīšanu. Ir arī daudzi citi iemesli, kādēļ vēlaties izmantot mainīgos.
Lai deklarētu darblapas mainīgo:
1 | Dim ws kā darblapu |
Darblapas piešķiršana mainīgajam:
1 | Iestatīt ws = Sheets ("Sheet1") |
Tagad savā kodā varat atsaukties uz darblapas mainīgo:
1 | ws. Aktivizēt |
Iepazīstieties ar visām darbgrāmatas lapām
Darblapas mainīgie ir būtiski, ja vēlaties apskatīt visas darbgrāmatas darblapas. Vienkāršākais veids, kā to izdarīt, ir šāds:
12345 | Dim ws kā darblapuPar katru ws darblapāsMsgBox ws.nameNākamais ws |
Šis kods parādīs visas darbgrāmatas darblapas, ziņojumu lodziņā parādot katru darblapas nosaukumu. Visu darbgrāmatas lapu pārlūkošana ir ļoti noderīga, bloķējot / atbloķējot vai slēpjot / slēpjot vairākas darblapas vienlaikus.
Darblapas aizsardzība
Darbgrāmatas aizsardzība
Darbgrāmatas aizsardzība bloķē darbgrāmatu no strukturālām izmaiņām, piemēram, darblapu pievienošanas, dzēšanas, pārvietošanas vai slēpšanas.
Darbgrāmatas aizsardzību var ieslēgt, izmantojot VBA:
1 | ActiveWorkbook.Protect Password: = "Parole" |
vai atspējot darbgrāmatas aizsardzību:
1 | ActiveWorkbook.UnProtect Password: = "Parole" |
Piezīme. Varat arī aizsargāt / atcelt aizsardzību bez paroles, izlaižot argumentu Parole:
1 | ActiveWorkbook.Protect |
Darblapas aizsardzība
Darblapas līmeņa aizsardzība novērš izmaiņas atsevišķās darblapās.
Aizsargāt darblapu
1 | Darblapas ("Sheet1"). Aizsargājiet "Paroli" |
Atsaukt darblapas aizsardzību
1 | Darblapas ("Sheet1"). Atceliet "Paroles" aizsardzību |
Aizsargājot darblapas, ir dažādas iespējas (atļaut mainīt formatējumu, ļaut lietotājam ievietot rindas utt.) Mēs iesakām izmantot makro ierakstītāju, lai ierakstītu vēlamos iestatījumus.
Šeit mēs detalizētāk apspriežam darblapu aizsardzību.
Darblapas redzamais īpašums
Jūs, iespējams, jau zināt, ka darblapas var paslēpt:
Faktiski ir trīs darblapas redzamības iestatījumi: Redzams, Slēpts un Ļoti slēpts.Slēptās lapas var paslēpt ikviens parasts Excel lietotājs - ar peles labo pogu noklikšķinot darblapas cilnes apgabalā (parādīts iepriekš). VeryHidden lapas var paslēpt tikai ar VBA kodu vai no VBA redaktora. Lai paslēptu / parādītu darblapas, izmantojiet šādus koda piemērus:
Atklāt darblapu
1 | Darblapas ("Sheet1"). Visible = xlSheetVisible |
Paslēpt darblapu
1 | Darblapas ("Sheet1"). Redzams = xlSheetHidden |
Ļoti paslēpt darblapu
1 | Darblapas ("Sheet1"). Visible = xlSheetVeryHidden |
Notikumi darblapas līmenī
Notikumi ir trigeri, kas var izraisīt “Notikumu procedūru” darbību. Piemēram, varat izraisīt koda palaišanu katru reizi, kad tiek mainīta kāda darblapas šūna vai aktivizēta darblapa.
Darblapas notikumu procedūras jāievieto darblapas modulī:
Darblapā ir daudz notikumu. Lai redzētu pilnu sarakstu, dodieties uz darblapas moduli, pirmajā nolaižamajā izvēlnē atlasiet “Darblapa”. Pēc tam otrajā nolaižamajā izvēlnē atlasiet notikuma procedūru, lai to ievietotu modulī.
Darba lapa Aktivizēt notikumu
Darblapas aktivizēšanas notikumi tiek palaisti katru reizi, kad tiek atvērta darblapa.
123 | Privāta apakšdarblapa_Aktivizēt ()Diapazons ("A1"). AtlasietBeigu apakš |
Šis kods katru reizi, atverot darblapu, atlasīs šūnu A1 (skata apgabala atiestatīšana darblapas augšējā kreisajā stūrī).
Darblapas maiņas notikums
Darblapas maiņas notikumi tiek izpildīti ikreiz, kad darblapā tiek mainīta šūnas vērtība. Lai iegūtu vairāk informācijas, izlasiet mūsu apmācību par darblapas maiņas notikumiem.
Darblapas apkrāptu lapa
Zemāk jūs atradīsit apkrāptu lapu, kurā ir izplatīti koda piemēri darbam ar lapām VBA
VBA darblapu cheatsheet
VBA darblapas CheatsheetApraksts | Koda piemērs |
---|---|
Atsauces un aktivizējošās lapas | |
Cilnes nosaukums | Izklājlapas ("Ievadi"). Aktivizēt |
VBA koda nosaukums | 1. lapa. Aktivizēt |
Indeksa pozīcija | Izklājlapas (1). Aktivizēt |
Atlasiet Izklājlapa | |
Atlasiet Izklājlapa | Izklājlapas ("Ievadi"). Izvēlieties |
Iestatiet uz Mainīgs | Dim ws kā darblapu Iestatiet ws = ActiveSheet |
Nosaukums / Pārdēvēt | ActiveSheet.Name = "JaunsNosaukums" |
Nākamā lapa | ActiveSheet.Next.Activate |
Izslēgt visas lapas | Dim ws kā darblapu Par katru ws darblapās Msgbox ws.name Nākamais ws |
Pārvietoties pa atlasītajām lapām | Dim ws kā darblapa Par katru ws ActiveWindow.SelectedSheets MsgBox ws.Name Nākamais ws |
Iegūstiet ActiveSheet | MsgBox ActiveSheet.Name |
Pievienot lapu | Loksnes. Pievienot |
Pievienojiet lapu un nosaukumu | Sheets.Add.Name = "NewSheet" |
Pievienojiet lapu ar nosaukumu no šūnas | Sheets.Add.Name = diapazons ("a3") |
Pievienot lapu pēc otras | Lapas. Pievienot pēc: = Izklājlapas ("Ievades") |
Pievienojiet lapu pēc un vārda | Sheets.Add (Pēc: = Sheets ("Ievades")). Name = "NewSheet" |
Pievienojiet lapu pirms un nosaukumu | Sheets.Add (Before: = Sheets ("Input")). Name = "NewSheet" |
Pievienojiet lapu darbgrāmatas beigām | Sheets. Pievienot pēc: = Sheets (Sheets.Count) |
Pievienojiet lapu darbgrāmatas sākumam | Sheets.Add (Pirms: = Sheets (1)). Name = "FirstSheet" |
Pievienot lapu mainīgajam | Dim ws kā darblapa Iestatiet ws = Sheets.Add |
Kopēt darblapas | |
Pārvietot lapu uz darbgrāmatas beigām | Izklājlapas ("Sheet1"). Pārvietot pēc: = Sheets (Sheets.Count) |
Uz jaunu darbgrāmatu | Izklājlapas ("Sheet1"). Kopēt |
Atlasītās lapas uz jaunu darbgrāmatu | ActiveWindow.SelectedSheets.Copy |
Pirms citas lapas | Izklājlapas ("Sheet1"). Kopēt pirms: = Sheets ("Sheet2") |
Pirms pirmās lapas | Izklājlapas ("Sheet1"). Kopēt pirms: = Sheets (1) |
Pēc pēdējās lapas | Izklājlapas ("Sheet1"). Kopēt pēc: = Sheets (Sheets.Count) |
Kopēt un Vārds | Izklājlapas ("Sheet1"). Kopēt pēc: = Sheets (Sheets.Count) ActiveSheet.Name = "Pēdējā lapa" |
Kopēt un nosaukums no šūnas vērtības | Izklājlapas ("Sheet1"). Kopēt pēc: = Sheets (Sheets.Count) ActiveSheet.Name = Diapazons ("A1"). Vērtība |
Uz citu darbgrāmatu | Izklājlapas ("Lapa1"). Kopēt pirms: = Darbgrāmatas ("Piemērs.xlsm"). Lapas (1) |
Paslēpt / parādīt lapas | |
Paslēpt lapu | Izklājlapas ("Sheet1"). Redzams = False vai Izklājlapas ("Sheet1"). Redzams = xlSheetHidden |
Atklāt lapu | Izklājlapas ("Sheet1"). Visible = True vai Izklājlapas ("Sheet1"). Visible = xlSheetVisible |
Ļoti slēpta lapa | Izklājlapas (“Sheet1”). Visible = xlSheetVeryHidden |
Izdzēst vai notīrīt lapas | |
Izdzēst lapu | Izklājlapas ("Sheet1"). Dzēst |
Izdzēst lapu (kļūda apstrādājot) | Par kļūdu Atsākt nākamo Izklājlapas ("Sheet1"). Dzēst Kļūda GoTo 0 |
Izdzēst lapu (bez uzvednes) | Application.DisplayAlerts = Nepareizi Izklājlapas ("Sheet1"). Dzēst Application.DisplayAlerts = Patiess |
Skaidra lapa | Loksnes ("1. lapa"). Šūnas. Skaidrs |
Tikai skaidras lapas saturs | Izklājlapas ("1. lapa"). Šūnas. Skaidrs saturs |
Skaidra lapa, ko izmanto | Izklājlapas ("Sheet1"). UsedRange.Clear |
Aizsargājiet vai neaizsargājiet lapas | |
Atsaukt aizsardzību (bez paroles) | Izklājlapas ("1. lapa"). Neaizsargāt |
Atsaukt aizsardzību (parole) | Izklājlapas ("Sheet1"). Atceliet "Paroles" aizsardzību |
Aizsargāt (bez paroles) | Izklājlapas ("Sheet1"). Aizsargāt |
Aizsargāt (parole) | Izklājlapas ("Sheet1"). Aizsargājiet "Paroli" |
Aizsargājiet, bet atļaujiet VBA piekļuvi | Izklājlapas ("Sheet1"). Aizsargāt UserInterfaceOnly: = True |
Atcelt visu lapu aizsardzību | Dim ws kā darblapa Par katru ws darblapās ws.Aizsargāt "paroli" Nākamais ws |