VBA ThisWorkbook - Hvordan bruges denne Workbook-egenskab i Excel VBA?

Indholdsfortegnelse

Excel VBA ThisWorkbook

VBA ThisWorkbook betyder den projektmappe, hvor vi skriver excel-koden. For eksempel, hvis du arbejder i projektmappen med navnet “Salg 2019.xlsx”, henviser vi normalt til projektmappen som denne.

Arbejdsbøger ("Salg 2019.xlsx"). Aktivér

Koden aktiverer projektmappen med navnet “Salg 2019.xlsx”.

I stedet for at skrive sådan kan vi blot skrive VBA-koden nedenfor.

Denne arbejdsbog.Aktiver '

Her refererer ThisWorkbook til den projektmappe, hvor vi skriver koden. Ved at henvise til dette ord kan vi udføre alle opgaverne i den aktuelle projektmappe og undgå langvarig kode med et fuldt navngivet projektmappens navn.

Jeg er sikker på, at du også skal have set ordet "Aktiv arbejdsbog", når du henviser til den anden kode. Dette er også et af de ofte anvendte ord i kodning. Vi vil se, hvad forskellene mellem disse to ord i grundlæggende er.

Arbejde med ThisWorkbook i Excel VBA

Referenceordet “ThisWorkbook” er mere pålideligt end Workbooks-objektkvalifikatoren. En af de menneskelige tendenser er at skrive navnet på projektmappen forkert, hvilket resulterer i at kaste en fejlmeddelelse.

En vigtigere grund til, at VBA ThisWorkbook er mere pålidelig, for bare hvis vi ændrer navnet på projektmappen, skal vi ændre koden, fordi vi har brugt ordet "ThisWorkbook."

Så ThisWorkbook er sikrere at bruge til henvisning til projektmappen, hvor vi skriver koden.

Eksempel nr. 1

Vi vil se nogle af eksemplerne, hvor vi kan bruge ordet ThisWorkbook i excel VBA. Den følgende kode udskriver projektmappens navn.

Kode:

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

Når du kører koden manuelt eller bruger F5-tasten, vil ovenstående kode vise projektmappens navn i meddelelsesfeltet i VBA.

Eksempel 2

I stedet for at bruge ordet "Denne projektmappe" kan vi bruge variabler til at indstille projektmappehenvisningen og endda reducere længden af ​​koden drastisk i VBA. Se f.eks. Først på nedenstående kode.

Kode:

Sub TWB_Example2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Aktiver denneWorkbook.Save ThisWorkbook.Luk ThisWorkbook.SaveAs End Sub

Ovenstående kode har brugt “ThisWorkbook” i hver linje i koden. Hvor svært det er at skrive ordet hver gang. Så vi kan minimere dette ved hjælp af variabler.

Se nu på nedenstående kode med variablen.

Kode:

Sub TWB_Example2 () Dim Wb Som projektmappesæt Wb = ThisWorkbook Wb.Activate Wb.Worksheets ("Sheet1"). Aktiver Wb.Save Wb.Luk Wb.SaveAs End Sub

Ser smukt ud, er det ikke?

Lad mig forklare koden for jer.

For det første har jeg erklæret variablen som et projekt i projektmappen.

Dim Wb som projektmappe

Da dette er en objektvariabel, skal vi indstille henvisningen til den bestemte projektmappe. Så jeg har brugt "ThisWorkbook" -henvisningen.

Indstil Wb = ThisWorkbook

Nu henvises til variablen “Wb” til projektmappen, hvor vi for tiden skriver koden. Herfra og fremad i proceduren behøver vi ikke bruge ordet "ThisWorkbook" i stedet, vi kan bruge variablen "Wb."

Aktiv projektmappe versus denne arbejdsbog i Excel VBA

Som jeg fortalte i begyndelsen af ​​artiklen, bruger mange kodere ordene Active Workbook & ThisWorkbook meget ofte i deres VBA-kodning. Som læser eller ny elev er det ikke let at forstå disse to. Så lad mig forklare dig nogle af forskellene.

Forskel nr. 1: Betydning

  • Aktiv projektmappe: Aktiv projektmappe er ikke nødvendigvis den projektmappe, hvor vi skriver koden i øjeblikket. Hvis du har flere åbnede projektmapper, og uanset hvilken projektmappe der er synlig på din skærm, betragtes det som Aktiv projektmappe .
  • ThisWorkbook: ThisWorkbook er altid den projektmappe, hvor vi skriver koden i øjeblikket.

Forskel 2: Fejlchancer

  • Aktiv projektmappe: Brug af aktiv i kodningen kan føre til mange fejl og forvirring, fordi vi aldrig ved, hvilken projektmappe, der er aktiv, medmindre vi specifikt nævner den projektmappe, der skal aktiveres, før vi bruger ordet Aktiv projektmappe.
  • ThisWorkbook: ThisWorkbook kan ikke gå galt, fordi det ikke betyder noget, hvilken projektmappe der er aktiv. Det tager altid henvisningen til projektmappen, hvor vi skriver koden.

Interessante artikler...