VBA ActiveWorkbook proti ThisWorkbook

Ta vadnica bo obravnavala razliko med VBA ActiveWorkbook in ThisWorkbook.

ActiveWorkbook vs ThisWorkbook

Pomembno je vedeti razliko med ActiveWorkbook in ThisWorkbook v VBA:

ActiveWorkbook je delovni zvezek, ki je trenutno aktiven (podobno kot je trenutno aktivni list ActiveSheet). Ta delovni zvezek je delovni zvezek, v katerem je shranjena koda VBA. Ta delovni zvezek se ne bo nikoli spremenil.

Ta delovni zvezek

Pomislite na ThisWorkbook kot na spremenljivko objekta, ki vam omogoča sklicevanje na delovni zvezek, ki vsebuje trenutno delujočo kodo.

Ta koda bo prikazala MessageBox z imenom ThisWorkbook:

123 Sub Show_ThisWorkbook ()MsgBox ThisWorkbook.NameEnd Sub

ActiveWorkbook

ActiveWorkbook je predmetna spremenljivka, ki vam omogoča sklicevanje na trenutno aktivni delovni zvezek.

Ta koda bo prikazala MessageBox z imenom ActiveWorkbook:

123 Sub Show_ActiveWorkbook ()MsgBox ActiveWorkbook.NameEnd Sub

VBA prevzema ActiveWorkbook

Ko poskušate delati s predmeti (npr. Listi) v knjigi ActiveWorkbook, vam predmeta ActiveWorkbook ni treba izrecno navesti. VBA bo domneval, da se nanašate na ActiveWorkbook.

Torej tole:

1 ActiveWorkbook.Sheets ("Sheet1"). Range ("$ A $ 5"). Vrednost = 1

Je enako kot tole:

1 Listi ("List1"). Razpon ("$ A $ 5"). Vrednost = 1

Novi ali odprti delovni zvezki so aktivni

Kadar koli ustvarite nov delovni zvezek ali odprete delovni zvezek, postane delovni zvezek »aktiven«. Sami se lahko prepričate s to kodo, ki bo dodala delovni zvezek in pridobila ime novega delovnega zvezka:

1234 Sub Show_ActiveWorkbook_Add ()Delovni zvezki.DodajMsgBox ActiveWorkbook.NameEnd Sub

Ko dodate ali odprete delovni zvezek, ga lahko s predmetom ActiveWorkbook dodelite spremenljivki. Kako vam bomo pokazali v spodnjih primerih:

Primeri tega delovnega zvezka in aktivnega delovnega zvezka

Preklopite na aktivni delovni zvezek

Preklopite aktivni delovni zvezek z imenom delovnega zvezka:

1 Delovni zvezki ("Knjiga1"). Aktivirajte

Preklopite aktivni delovni zvezek s številko naročila delovnega lista (1 je prvi delovni list v delovnem zvezku)

1 Delovni zvezki (1). Aktivirajte

Naj bo ta delovni zvezek aktiven

Naj bo ta delovni zvezek (kjer je shranjena trenutno delujoča koda) ActiveWorkbook:

1 ThisWorkbook.Aktiviraj

Nastavite ActiveWorkbook na spremenljivko

Dodelite ActiveWorkbook spremenljivki predmeta delovnega zvezka:

12 Dim wb Kot delovni zvezekNastavite wb = ActiveWorkbook

Zaprite in shranite aktivni delovni zvezek

Zapre in shrani ActiveWorkbook:

1 ActiveWorkbook.Close SaveChanges: = True

Zaprite aktivni delovni zvezek brez shranjevanja

Zapre ActiveWorkbook brez shranjevanja:

1 ActiveWorkbook.Close SaveChanges: = False

ActiveWorkbook - Shrani kot

Izvede shranjevanje aktivnega delovnega zvezka.

123456789 Sub SaveAsActiveWorkbook ()Zatemni rezultat kot variantoresult = Application.GetSaveAsFilename (InitialFileName: = "", _FileFilter: = "Excelov delovni zvezek z omogočeno makro funkcijo ( *.xlsm), *.xlsm, Excelov delovni zvezek ( *.xlsx), *.xlsx")Če je rezultat = napačno, se vrniteRezultat ActiveWorkbook.SaveAsEnd Sub

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave