VBA ActiveWorkbook versus ThisWorkbook

Deze tutorial bespreekt het verschil tussen de VBA ActiveWorkbook en ThisWorkbook.

ActiveWorkbook versus ThisWorkbook

Het is belangrijk om het verschil te kennen tussen de ActiveWorkbook en ThisWorkbook in VBA:

De ActiveWorkbook is de werkmap die momenteel actief is (vergelijkbaar met hoe ActiveSheet het huidige actieve werkblad is). ThisWorkbook is de werkmap waarin de VBA-code is opgeslagen. Dit Werkboek zal nooit veranderen.

Dit Werkboek

Beschouw ThisWorkbook als een objectvariabele waarmee u kunt verwijzen naar de werkmap die de momenteel actieve code bevat.

Deze code geeft een MessageBox weer met de naam ThisWorkbook:

123 Sub Show_ThisWorkbook()MsgBox ThisWorkbook.NameEinde sub

ActiefWerkboek

De ActiveWorkbook is een objectvariabele waarmee u kunt verwijzen naar de momenteel actieve werkmap.

Deze code geeft een MessageBox weer met de naam ActiveWorkbook:

123 Sub Show_ActiveWorkbook()MsgBox ActiveWorkbook.NameEinde sub

VBA gaat uit van ActiveWorkbook

Wanneer u probeert te werken met objecten (bijv. Spreadsheets) binnen het ActiveWorkbook, hoeft u het ActiveWorkbook-object niet expliciet te vermelden. VBA gaat ervan uit dat u verwijst naar de ActiveWorkbook.

Dus dit:

1 ActiveWorkbook.Sheets("Blad1").Bereik("$A$5").Waarde = 1

Is hetzelfde als dit:

1 Bladen ("Blad1"). Bereik ("$ A $ 5"). Waarde = 1

Nieuwe of geopende werkmappen zijn actief

Telkens wanneer u een nieuwe werkmap maakt of een werkmap opent, wordt de werkmap "Actief". U kunt het zelf zien met deze code die een werkmap toevoegt en de naam van de nieuwe werkmap ophaalt:

1234 Sub Show_ActiveWorkbook_Add()Werkmappen.ToevoegenMsgBox ActiveWorkbook.NameEinde sub

Nadat u een werkmap hebt toegevoegd of geopend, kunt u deze aan een variabele toewijzen met behulp van het ActiveWorkbook-object. In de onderstaande voorbeelden laten we u zien hoe:

Voorbeelden van ThisWorkbook en ActiveWorkbook

Schakel tussen actieve werkmap

Schakel de actieve werkmap met Werkmapnaam:

1 Werkmappen ("Boek1"). Activeren

Wissel van actieve werkmap met werkbladvolgnummer (1 is het eerste werkblad in een werkmap)

1 Werkmappen(1).Activeren

Maak dit werkboek actief

Maak van ThisWorkbook (waar de huidige code is opgeslagen) het ActiveWorkbook:

1 Dit Werkboek.Activeren

ActiveWorkbook instellen op een variabele

Wijs de ActiveWorkbook toe aan een werkmapobjectvariabele:

12 Dim wb als werkboekStel wb = ActiveWorkbook in

De actieve werkmap sluiten en opslaan

Sluit en bewaart de ActiveWorkbook:

1 ActiveWorkbook.Close SaveChanges:=True

Sluit de actieve werkmap zonder op te slaan

Sluit de ActiveWorkbook zonder op te slaan:

1 ActiveWorkbook.Close SaveChanges:=False

ActiveWorkbook - Opslaan als

Voert een Opslaan als van de actieve werkmap uit.

123456789 Sub OpslaanAlsActiefWerkboek()Dim resultaat Als Variantresultaat = Application.GetSaveAsFilename(InitialFileName:="", _FileFilter:="Excel Macro-enabled werkmap (*.xlsm), *.xlsm,Excel-werkmap (*.xlsx), *.xlsx")Als resultaat = False, keer dan terugActiveWorkbook.SaveAls resultaatEinde sub

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave