Šajā apmācībā tiks apspriesta atšķirība starp VBA ActiveWorkbook un ThisWorkbook.
ActiveWorkbook pret ThisWorkbook
Ir svarīgi zināt atšķirību starp ActiveWorkbook un ThisWorkbook VBA:
ActiveWorkbook ir darbgrāmata, kas pašlaik ir aktīva (līdzīgi kā ActiveSheet ir pašlaik aktīvā lapa). Šī darba grāmata ir darbgrāmata, kurā tiek glabāts VBA kods. Šī darba grāmata nekad nemainīsies.
Šī darba grāmata
Domājiet par šo darba grāmatu kā par objekta mainīgo, kas ļauj atsaukties uz darbgrāmatu, kurā ir pašlaik darbojošais kods.
Šis kods parādīs MessageBox ar šī darbgrāmatas nosaukumu:
123 | Sub Show_ThisWorkbook ()MsgBox ThisWorkbook.NameBeigu apakš |
ActiveWorkbook
ActiveWorkbook ir objekta mainīgais, kas ļauj atsaukties uz pašlaik aktīvo darbgrāmatu.
Šis kods parādīs MessageBox ar ActiveWorkbook nosaukumu:
123 | Sub Show_ActiveWorkbook ()MsgBox ActiveWorkbook.NameBeigu apakš |
VBA uzņemas ActiveWorkbook
Mēģinot strādāt ar objektiem (piemēram, izklājlapām) ActiveWorkbook, jums nav skaidri jānorāda ActiveWorkbook objekts. VBA pieņems, ka jūs atsaucaties uz ActiveWorkbook.
Tātad šis:
1 | ActiveWorkbook.Sheets ("Sheet1"). Diapazons ("$ A $ 5"). Vērtība = 1 |
Ir tāds pats kā šis:
1 | Izklājlapas ("1. lapa"). Diapazons ("$ A $ 5"). Vērtība = 1 |
Jaunas vai atvērtas darbgrāmatas ir aktīvas
Ikreiz, kad izveidojat jaunu darbgrāmatu vai atverat darbgrāmatu, tā kļūst par “aktīvu”. Jūs varat pārliecināties par šo kodu, kas pievienos darbgrāmatu un iegūs jaunās darbgrāmatas nosaukumu:
1234 | Sub Show_ActiveWorkbook_Add ()Darbgrāmatas. PievienotMsgBox ActiveWorkbook.NameBeigu apakš |
Pēc darbgrāmatas pievienošanas vai atvēršanas varat to piešķirt mainīgajam, izmantojot ActiveWorkbook objektu. Tālāk sniegtajos piemēros mēs jums parādīsim:
ThisWorkbook un ActiveWorkbook piemēri
Pārslēgt aktīvo darbgrāmatu
Pārslēdziet aktīvo darbgrāmatu, izmantojot darbgrāmatas nosaukumu:
1 | Darbgrāmatas ("1. grāmata"). Aktivizēt |
Pārslēgt aktīvo darbgrāmatu, izmantojot darblapas pasūtījuma numuru (1 ir pirmā darblapa darbgrāmatā)
1 | Darbgrāmatas (1). Aktivizēt |
Padariet šo darbgrāmatu aktīvu
Padarīt šo darbgrāmatu (kurā tiek saglabāts pašlaik darbojošais kods) par ActiveWorkbook:
1 | Šī darba grāmata. Aktivizēt |
Iestatiet ActiveWorkbook uz mainīgo
Piešķiriet ActiveWorkbook darbgrāmatas objekta mainīgajam:
12 | Dim wb kā darbgrāmataIestatīt wb = ActiveWorkbook |
Aizveriet un saglabājiet aktīvo darbgrāmatu
Aizver un saglabā ActiveWorkbook:
1 | ActiveWorkbook.Close SaveChanges: = True |
Aizveriet aktīvo darbgrāmatu, nesaglabājot
Aizver ActiveWorkbook, nesaglabājot:
1 | ActiveWorkbook.Close SaveChanges: = Nepareizi |
ActiveWorkbook - Saglabāt kā
Veic saglabāšanu kā aktīvo darbgrāmatu.
123456789 | Sub SaveAsActiveWorkbook ()Dim rezultāts Kā variantsrezultāts = Application.GetSaveAsFilename (InitialFileName: = "", _FileFilter: = "Excel makro iespējota darbgrāmata ( *.xlsm), *.xlsm, Excel darbgrāmata ( *.xlsx), *.xlsx")Ja rezultāts = nepatiess, tad atgriezietiesActiveWorkbook.SaveAs rezultātsBeigu apakš |