VBA lapas - galīgais ceļvedis

Š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 Cheatsheet
AprakstsKoda piemērs
Atsauces un aktivizējošās lapas
Cilnes nosaukumsIzklājlapas ("Ievadi"). Aktivizēt
VBA koda nosaukums1. lapa. Aktivizēt
Indeksa pozīcijaIzklājlapas (1). Aktivizēt
Atlasiet Izklājlapa
Atlasiet IzklājlapaIzklājlapas ("Ievadi"). Izvēlieties
Iestatiet uz MainīgsDim ws kā darblapu
Iestatiet ws = ActiveSheet
Nosaukums / PārdēvētActiveSheet.Name = "JaunsNosaukums"
Nākamā lapaActiveSheet.Next.Activate
Izslēgt visas lapasDim ws kā darblapu
Par katru ws darblapās
Msgbox ws.name
Nākamais ws
Pārvietoties pa atlasītajām lapāmDim ws kā darblapa
Par katru ws ActiveWindow.SelectedSheets
MsgBox ws.Name
Nākamais ws
Iegūstiet ActiveSheetMsgBox ActiveSheet.Name
Pievienot lapuLoksnes. Pievienot
Pievienojiet lapu un nosaukumuSheets.Add.Name = "NewSheet"
Pievienojiet lapu ar nosaukumu no šūnasSheets.Add.Name = diapazons ("a3")
Pievienot lapu pēc otrasLapas. Pievienot pēc: = Izklājlapas ("Ievades")
Pievienojiet lapu pēc un vārdaSheets.Add (Pēc: = Sheets ("Ievades")). Name = "NewSheet"
Pievienojiet lapu pirms un nosaukumuSheets.Add (Before: = Sheets ("Input")). Name = "NewSheet"
Pievienojiet lapu darbgrāmatas beigāmSheets. Pievienot pēc: = Sheets (Sheets.Count)
Pievienojiet lapu darbgrāmatas sākumamSheets.Add (Pirms: = Sheets (1)). Name = "FirstSheet"
Pievienot lapu mainīgajamDim ws kā darblapa
Iestatiet ws = Sheets.Add
Kopēt darblapas
Pārvietot lapu uz darbgrāmatas beigāmIzklājlapas ("Sheet1"). Pārvietot pēc: = Sheets (Sheets.Count)
Uz jaunu darbgrāmatuIzklājlapas ("Sheet1"). Kopēt
Atlasītās lapas uz jaunu darbgrāmatuActiveWindow.SelectedSheets.Copy
Pirms citas lapasIzklājlapas ("Sheet1"). Kopēt pirms: = Sheets ("Sheet2")
Pirms pirmās lapasIzklājlapas ("Sheet1"). Kopēt pirms: = Sheets (1)
Pēc pēdējās lapasIzklājlapas ("Sheet1"). Kopēt pēc: = Sheets (Sheets.Count)
Kopēt un VārdsIzklājlapas ("Sheet1"). Kopēt pēc: = Sheets (Sheets.Count)
ActiveSheet.Name = "Pēdējā lapa"
Kopēt un nosaukums no šūnas vērtībasIzklājlapas ("Sheet1"). Kopēt pēc: = Sheets (Sheets.Count)
ActiveSheet.Name = Diapazons ("A1"). Vērtība
Uz citu darbgrāmatuIzklājlapas ("Lapa1"). Kopēt pirms: = Darbgrāmatas ("Piemērs.xlsm"). Lapas (1)
Paslēpt / parādīt lapas
Paslēpt lapuIzklājlapas ("Sheet1"). Redzams = False
vai
Izklājlapas ("Sheet1"). Redzams = xlSheetHidden
Atklāt lapuIzklājlapas ("Sheet1"). Visible = True
vai
Izklājlapas ("Sheet1"). Visible = xlSheetVisible
Ļoti slēpta lapaIzklājlapas (“Sheet1”). Visible = xlSheetVeryHidden
Izdzēst vai notīrīt lapas
Izdzēst lapuIzklā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 lapaLoksnes ("1. lapa"). Šūnas. Skaidrs
Tikai skaidras lapas satursIzklājlapas ("1. lapa"). Šūnas. Skaidrs saturs
Skaidra lapa, ko izmantoIzklā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ļuviIzklājlapas ("Sheet1"). Aizsargāt UserInterfaceOnly: = True
Atcelt visu lapu aizsardzībuDim ws kā darblapa
Par katru ws darblapās
ws.Aizsargāt "paroli"
Nākamais ws
wave wave wave wave wave