VBA ThisWorkbook

Excel VBA ThisWorkbook

VBA ThisWorkbook betekent de werkmap waarin we de Excel-code schrijven. Als u bijvoorbeeld werkt in de werkmap met de naam "Sales 2019.xlsx", verwijzen we meestal op deze manier naar de werkmap.

Werkmappen ('Sales 2019.xlsx'). Activeren

De code activeert de werkmap met de naam "Sales 2019.xlsx".

In plaats van zo te schrijven, kunnen we eenvoudig de VBA-code hieronder schrijven.

ThisWorkbook.Activate '

Hier verwijst ThisWorkbook naar de werkmap waarin we de code schrijven. Door naar dit woord te verwijzen, kunnen we alle taken in de huidige werkmap uitvoeren en lange code met een volledig benoemde werkmapnaam vermijden.

Ik weet zeker dat u ook het woord "Actieve werkmap" moet hebben gezien als u naar de andere code verwijst. Dit is ook een van de vaak gebruikte woorden bij codering. We zullen zien wat de verschillen tussen deze twee woorden in de basis zijn.

Werken met ThisWorkbook in Excel VBA

Het verwijzingswoord "ThisWorkbook" is betrouwbaarder dan de objectkwalificatie Workbooks. Een van de menselijke neigingen is het verkeerd typen van de werkmapnaam, wat resulteert in een foutmelding.

Nog een belangrijke reden waarom VBA ThisWorkbook betrouwbaarder is, want voor het geval dat we de naam van de werkmap wijzigen, moeten we de code wijzigen omdat we het woord "ThisWorkbook" hebben gebruikt.

ThisWorkbook is dus veiliger om te gebruiken om te verwijzen naar de werkmap waarin we de code schrijven.

U kunt deze VBA ThisWorkbook Excel-sjabloon hier downloaden - VBA ThisWorkbook Excel-sjabloon

Voorbeeld 1

We zullen enkele voorbeelden zien waarin we het woord ThisWorkbook in Excel VBA kunnen gebruiken. De volgende code zal de naam van de werkmap afdrukken.

Code:

 Sub TWB_Example1 () Dim WBName As String WBName = ThisWorkbook.Name MsgBox WBName End Sub 

Wanneer u de code handmatig uitvoert of de F5-toets gebruikt, geeft de bovenstaande code de werkmapnaam weer in het berichtvenster in VBA.

Voorbeeld # 2

In plaats van het woord "This Workbook" te gebruiken, kunnen we variabelen gebruiken om de werkmapreferentie in te stellen en zelfs de lengte van de code drastisch te verminderen in VBA. Kijk bijvoorbeeld eerst naar de onderstaande code.

Code:

 Sub TWB_Example2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Activeer ThisWorkbook.Save ThisWorkbook.Sluit ThisWorkbook.SaveAs End Sub 

De bovenstaande code heeft "ThisWorkbook" gebruikt in elke regel van de code. Hoe moeilijk het is om het woord elke keer te typen. We kunnen dit dus minimaliseren door variabelen te gebruiken.

Bekijk nu de onderstaande code met de variabele.

Code:

 Sub TWB_Example2 () Dim Wb As Workbook Set Wb = ThisWorkbook Wb.Activate Wb.Worksheets ("Sheet1"). Activeer Wb.Save Wb.Close Wb.SaveAs End Sub 

Ziet er mooi uit, nietwaar ??

Ik zal jullie de code uitleggen.

Eerst heb ik de variabele gedeclareerd als Workbook-object.

Dim Wb als werkboek

Omdat dit een objectvariabele is, moeten we de verwijzing naar de specifieke werkmap instellen. Dus ik heb de referentie "ThisWorkbook" gebruikt.

Stel Wb = ThisWorkbook in

Nu wordt de variabele "Wb" verwezen naar de werkmap waarin we de code op dit moment schrijven. Vanaf hier verder in de procedure hoeven we niet het woord "ThisWorkbook" te gebruiken, maar kunnen we de variabele "Wb" gebruiken

Actieve werkmap versus ThisWorkbook in Excel VBA

Zoals ik aan het begin van het artikel vertelde, gebruiken veel codeerders de woorden Active Workbook & ThisWorkbook heel vaak in hun VBA-codering. Als lezer of als nieuwe leerling is het niet gemakkelijk om deze twee te begrijpen. Dus laat me je enkele van de verschillen uitleggen.

Verschil # 1: betekenis

  • Actieve werkmap: Actieve werkmap is niet noodzakelijk de werkmap waarin we de code op dit moment schrijven. Als u meerdere geopende werkmappen heeft en de werkmap die op uw scherm zichtbaar is, wordt beschouwd als een actieve werkmap .
  • ThisWorkbook: ThisWorkbook is altijd de werkmap waarin we de code op dit moment schrijven.

Verschil 2: foutkansen

  • Actieve werkmap: het gebruik van Actief bij de codering kan tot veel fouten en verwarring leiden, omdat we nooit weten welke werkmap actief is, tenzij we specifiek de te activeren werkmap vermelden voordat we het woord Actieve werkmap gebruiken.
  • ThisWorkbook: ThisWorkbook kan niet fout gaan, want het maakt niet uit welke werkmap actief is, het neemt altijd de referentie van de werkmap waarin we de code schrijven.