Ovaj vodič će raspravljati o razlici između VBA ActiveWorkbook -a i ThisWorkbook -a.
ActiveWorkbook vs. ThisWorkbook
Važno je znati razliku između ActiveWorkbook -a i ThisWorkbook -a u VBA -i:
ActiveWorkbook je radna knjiga koja je trenutno aktivna (slično kao što je ActiveSheet trenutno aktivni list). ThisWorkbook je radna knjiga u kojoj je pohranjen VBA kôd. Ova radna knjiga se nikada neće promijeniti.
Ova radna knjiga
Zamislite ThisWorkbook kao objektnu varijablu koja vam omogućuje upućivanje na radnu knjigu koja sadrži trenutno pokrenuti kôd.
Ovaj kôd će prikazati MessageBox s imenom ThisWorkbook:
123 | Sub Show_ThisWorkbook ()MsgBox ThisWorkbook.NameKraj podm |
ActiveWorkbook
ActiveWorkbook je varijabla objekta koja vam omogućuje upućivanje na trenutno aktivnu radnu knjigu.
Ovaj kôd će prikazati MessageBox s imenom ActiveWorkbook:
123 | Sub Show_ActiveWorkbook ()MsgBox ActiveWorkbook.NameKraj podm |
VBA pretpostavlja aktivnu radnu knjigu
Kada pokušavate raditi s objektima (npr. Tablice) unutar ActiveWorkbook -a, ne morate izričito navesti objekt ActiveWorkbook. VBA će pretpostaviti da se pozivate na ActiveWorkbook.
Tako da je ovo:
1 | ActiveWorkbook.Sheets ("Sheet1"). Raspon ("$ A $ 5"). Vrijednost = 1 |
Je li ovo isto:
1 | Listovi ("List 1"). Raspon ("$ A $ 5"). Vrijednost = 1 |
Nove ili otvorene radne bilježnice su aktivne
Kad god stvorite novu radnu knjigu ili otvorite radnu knjigu, ona postaje "Aktivna". Možete se sami uvjeriti pomoću ovog koda koji će dodati radnu knjigu i dohvatiti naziv nove radne knjige:
1234 | Sub Show_ActiveWorkbook_Add ()Radne bilježnice.DodajMsgBox ActiveWorkbook.NameKraj podm |
Nakon dodavanja ili otvaranja radne knjige, možete je dodijeliti varijabli pomoću objekta ActiveWorkbook. Pokazat ćemo vam kako u primjerima u nastavku:
Primjeri ove radne knjige i aktivne radne knjige
Promijenite aktivnu radnu knjigu
Promijenite aktivnu radnu knjigu pomoću naziva radne knjige:
1 | Radne bilježnice ("Knjiga1"). Aktivirajte |
Promijenite aktivnu radnu knjigu koristeći redni broj radnog lista (1 je prvi radni list u radnoj knjizi)
1 | Radne bilježnice (1) .Aktivirajte |
Učinite ovu radnu knjigu aktivnom
Neka ova radna knjiga (u kojoj je pohranjen trenutno aktivni kôd) postane aktivna radna knjiga:
1 | ThisWorkbook.Aktivirajte |
Postavite ActiveWorkbook na varijablu
Dodijelite ActiveWorkbook varijabli objekta radne knjige:
12 | Dim wb Kao radna bilježnicaPostavite wb = ActiveWorkbook |
Zatvorite i spremite aktivnu radnu knjigu
Zatvara i sprema ActiveWorkbook:
1 | ActiveWorkbook.Close SaveChanges: = Istina |
Zatvorite aktivnu radnu knjigu bez spremanja
Zatvara ActiveWorkbook bez spremanja:
1 | ActiveWorkbook.Close SaveChanges: = False |
ActiveWorkbook - Spremi kao
Izvodi spremanje aktivne radne knjige.
123456789 | Sub SaveAsActiveWorkbook ()Zatamnjeni rezultat kao varijantaresult = Application.GetSaveAsFilename (InitialFileName: = "", _FileFilter: = "Excel Macro-Enabled Workbook ( *.xlsm), *.xlsm, Excel Workbook ( *.xlsx), *.xlsx")Ako je rezultat = Netačno, vratite seActiveWorkbook.SaveAs rezultatKraj podm |