VBA ActiveWorkbook vs. ThisWorkbook

Tento tutoriál bude diskutovať o rozdieloch medzi VBA ActiveWorkbook a ThisWorkbook.

ActiveWorkbook vs. ThisWorkbook

Je dôležité poznať rozdiel medzi ActiveWorkbook a ThisWorkbook vo VBA:

ActiveWorkbook je zošit, ktorý je aktuálne aktívny (podobný tomu, akým je ActiveSheet aktuálne aktívnym listom). ThisWorkbook je zošit, kde je uložený kód VBA. Táto pracovná kniha sa nikdy nezmení.

Táto pracovná kniha

Považujte ThisWorkbook za objektovú premennú, ktorá vám umožní odkazovať na zošit obsahujúci aktuálne spustený kód.

Tento kód zobrazí MessageBox s názvom ThisWorkbook:

123 Sub Show_ThisWorkbook ()MsgBox ThisWorkbook.NameKoniec pod

ActiveWorkbook

ActiveWorkbook je objektová premenná, ktorá vám umožňuje odkazovať na aktuálne aktívny zošit.

Tento kód zobrazí MessageBox s názvom ActiveWorkbook:

123 Sub Show_ActiveWorkbook ()MsgBox ActiveWorkbook.NameKoniec pod

VBA predpokladá ActiveWorkbook

Pri pokuse o prácu s objektmi (napr. Hárkami) v programe ActiveWorkbook nemusíte objekt ActiveWorkbook explicitne uvádzať. VBA bude predpokladať, že máte na mysli ActiveWorkbook.

Takže toto:

1 ActiveWorkbook.Sheets ("Sheet1"). Rozsah ("$ A $ 5"). Hodnota = 1

Je to isté ako toto:

1 Tabuľky („List1“). Rozsah („$ A $ 5“). Hodnota = 1

Nové alebo otvorené zošity sú aktívne

Kedykoľvek vytvoríte nový zošit alebo otvoríte zošit, zošit sa stane „aktívnym“. Môžete sa sami presvedčiť pomocou tohto kódu, ktorý pridá zošit a získa názov nového zošita:

1234 Sub Show_ActiveWorkbook_Add ()Zošity. PridaťMsgBox ActiveWorkbook.NameKoniec pod

Po pridaní alebo otvorení zošita ho môžete priradiť k premennej pomocou objektu ActiveWorkbook. V nasledujúcich príkladoch vám ukážeme, ako na to:

ThisWorkbook and ActiveWorkbook examples

Prepnúť aktívny zošit

Prepnite aktívny zošit pomocou názvu zošita:

1 Zošity („Kniha 1“). Aktivujte

Prepnite aktívny zošit pomocou poradového čísla pracovného hárka (1 je prvý pracovný zošit v zošite)

1 Zošity (1). Aktivovať

Aktivujte túto pracovnú knihu

Urobte z tejto pracovnej knihy (kde je uložený aktuálne spustený kód) ActiveWorkbook:

1 ThisWorkbook.Activate

Nastavte ActiveWorkbook na premennú

Priraďte ActiveWorkbook k premennej objektu zošita:

12 Dim wb ako zošitNastaviť wb = ActiveWorkbook

Zatvorte a uložte aktívny zošit

Zatvorí a uloží ActiveWorkbook:

1 ActiveWorkbook.Zavrieť SaveChanges: = True

Zatvorte aktívny zošit bez uloženia

Zatvorí ActiveWorkbook bez uloženia:

1 ActiveWorkbook.Close SaveChanges: = False

ActiveWorkbook - Uložiť ako

Vykoná uloženie ako z aktívneho zošita.

123456789 Sub SaveAsActiveWorkbook ()Stmaviť výsledok ako variantresult = Application.GetSaveAsFilename (InitialFileName: = "", _FileFilter: = "Zošit s povolením makra v Exceli ( *.xlsm), *.xlsm, zošit programu Excel ( *.xlsx), *.xlsx")Ak je výsledok = False, potom sa vráťteActiveWorkbook.SaveAs resultKoniec pod

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave