VBA ActiveWorkbook vs. ThisWorkbook

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

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave