VBA ActiveWorkbook kontra ThisWorkbook

Ez az oktatóanyag a VBA ActiveWorkbook és a ThisWorkbook közötti különbséget tárgyalja.

ActiveWorkbook kontra ThisWorkbook

Fontos tudni, hogy mi a különbség az ActiveWorkbook és a ThisWorkbook között a VBA -ban:

Az ActiveWorkbook az a munkafüzet, amely jelenleg aktív (hasonlóan ahhoz, ahogy az ActiveSheet az aktuálisan aktív lap). Ez a munkafüzet az a munkafüzet, amelyben a VBA kód tárolódik. Ez a munkakönyv soha nem fog változni.

Ez a munkakönyv

Gondoljon úgy a ThisWorkbookra, mint egy objektumváltozóra, amely lehetővé teszi, hogy hivatkozzon az éppen futó kódot tartalmazó munkafüzetre.

Ez a kód egy MessageBox -ot jelenít meg a ThisWorkbook nevével:

123 Sub Show_ThisWorkbook ()MsgBox ThisWorkbook.NameEnd Sub

ActiveWorkbook

Az ActiveWorkbook egy objektumváltozó, amely lehetővé teszi az éppen aktív munkafüzetre való hivatkozást.

Ez a kód egy MessageBox -ot fog megjeleníteni ActiveWorkbook névvel:

123 Sub Show_ActiveWorkbook ()MsgBox ActiveWorkbook.NameEnd Sub

A VBA feltételezi az ActiveWorkbookot

Amikor az ActiveWorkbook objektumaival (pl. Táblázatok) próbál dolgozni, nem kell kifejezetten megadnia az ActiveWorkbook objektumot. A VBA feltételezi, hogy az ActiveWorkbookra hivatkozik.

Szóval ez:

1 ActiveWorkbook.Sheets ("Sheet1"). Tartomány ("$ A $ 5"). Érték = 1

Ugyanaz, mint ez:

1 Táblázatok ("Sheet1"). Tartomány ("$ A $ 5"). Érték = 1

Az új vagy megnyitott munkafüzetek aktívak

Amikor létrehoz egy új munkafüzetet vagy megnyit egy munkafüzetet, a munkafüzet „aktív” lesz. Ezt a kódot saját maga láthatja, amely hozzáad egy munkafüzetet, és lekéri az új munkafüzet nevét:

1234 Sub Show_ActiveWorkbook_Add ()MunkafüzetekMsgBox ActiveWorkbook.NameEnd Sub

A munkafüzet hozzáadása vagy megnyitása után hozzárendelheti azt egy változóhoz az ActiveWorkbook objektum használatával. Az alábbi példákban megmutatjuk, hogyan.

Példák erre a munkakönyvre és az ActiveWorkbookra

Váltás az aktív munkafüzetre

Az aktív munkafüzet váltása a munkafüzet nevével:

1 Munkafüzetek ("Könyv1"). Aktiválás

Váltson az aktív munkafüzetre a munkalap rendelési számával (az 1 a munkafüzet első munkalapja)

1 Munkafüzetek (1). Aktiválás

Aktiválja ezt a munkafüzetet

Legyen a ThisWorkbook (ahol az éppen futó kód van tárolva) ActiveWorkbook:

1 ThisWorkbook. Aktiválás

Állítsa az ActiveWorkbook -ot egy változóra

Az ActiveWorkbook hozzárendelése egy munkafüzet objektumváltozóhoz:

12 Dim wb Mint munkafüzetWb = ActiveWorkbook beállítása

Zárja be és mentse az aktív munkafüzetet

Bezárja és elmenti az ActiveWorkbookot:

1 ActiveWorkbook.Close SaveChanges: = Igaz

Zárja be az aktív munkafüzetet mentés nélkül

Mentés nélkül bezárja az ActiveWorkbookot:

1 ActiveWorkbook.Close SaveChanges: = Hamis

ActiveWorkbook - Mentés másként

Mentés másként végrehajtja az aktív munkafüzetet.

123456789 Sub SaveAsActiveWorkbook ()Halvány eredmény Variantkénteredmény = Application.GetSaveAsFilename (InitialFileName: = "", _FileFilter: = "Excel makró-engedélyezett munkafüzet ( *.xlsm), *.xlsm, Excel-munkafüzet ( *.xlsx), *.xlsx")Ha az eredmény = hamis, akkor térjen visszaActiveWorkbook.SaveAs eredményEnd Sub

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave