VBA ThisWorkbook - Hvordan bruker jeg denne arbeidsbokegenskapen i Excel VBA?

Innholdsfortegnelse

Excel VBA ThisWorkbook

VBA ThisWorkbook betyr arbeidsboken der vi skriver excel-koden. For eksempel, hvis du jobber i arbeidsboken med navnet “Salg 2019.xlsx”, refererer vi vanligvis til arbeidsboken slik.

Arbeidsbøker (“Salg 2019.xlsx”). Aktiver

Koden vil aktivere arbeidsboken med navnet “Salg 2019.xlsx”.

I stedet for å skrive slik kan vi ganske enkelt skrive VBA-koden nedenfor.

Denne arbeidsboken. Aktiver '

Her refererer ThisWorkbook til arbeidsboken der vi skriver koden. Ved å referere til dette ordet, kan vi utføre alle oppgavene i den nåværende arbeidsboken og unngå langvarig kode med et fullt navngitt arbeidsboknavn.

Jeg er sikker på at du også må ha sett ordet "Aktiv arbeidsbok" når du henviser til den andre koden. Dette er også et av de ofte brukte ordene i koding. Vi vil se hva forskjellene mellom disse to ordene i grunnleggende er.

Arbeider med ThisWorkbook i Excel VBA

Referanseordet “ThisWorkbook” er mer pålitelig enn Workbooks-objektkvalifiseringen. En av de menneskelige tendensene er å skrive inn arbeidsbokna feil, noe som resulterer i at det vises en feilmelding.

En viktig grunn til at VBA ThisWorkbook er mer pålitelig, for hvis vi endrer navnet på arbeidsboken, må vi endre koden fordi vi har brukt ordet "ThisWorkbook."

Så, ThisWorkbook er tryggere å bruke for å referere til arbeidsboken der vi skriver koden.

Eksempel 1

Vi vil se noen av eksemplene der vi kan bruke ordet ThisWorkbook i excel VBA. Følgende kode vil skrive ut arbeidsboknavnet.

Kode:

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

Når du kjører koden manuelt eller bruker F5-tasten, vil koden ovenfor vise arbeidsboknavnet i meldingsboksen i VBA.

Eksempel 2

I stedet for å bruke ordet "Denne arbeidsboken", kan vi bruke variabler for å stille inn arbeidsbokreferansen og til og med redusere lengden på koden drastisk i VBA. Se for eksempel først på koden nedenfor.

Kode:

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

Ovennevnte kode har brukt “ThisWorkbook” i hver linje i koden. Hvor vanskelig det er å skrive ordet hver gang. Så vi kan minimere dette ved å bruke variabler.

Nå, se på koden nedenfor med variabelen.

Kode:

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

Ser vakkert ut, ikke sant?

La meg forklare koden til dere.

Først har jeg erklært variabelen som et arbeidsbokobjekt.

Dim Wb Som arbeidsbok

Siden dette er en objektvariabel, må vi sette referansen til den aktuelle arbeidsboken. Så jeg har brukt referansen "ThisWorkbook".

Sett Wb = ThisWorkbook

Nå refereres variabelen “Wb” til arbeidsboken der vi skriver koden for øyeblikket. Herfra og fremover i prosedyren trenger vi ikke bruke ordet "ThisWorkbook" i stedet, vi kan bruke variabelen "Wb."

Aktiv arbeidsbok kontra ThisWorkbook i Excel VBA

Som jeg fortalte i begynnelsen av artikkelen, bruker mange kodere ordene Active Workbook & ThisWorkbook veldig ofte i sin VBA-koding. Som leser eller ny lærer er det ikke lett å forstå disse to. Så, la meg forklare deg noen av forskjellene.

Forskjell 1: Betydning

  • Aktiv arbeidsbok: Aktiv arbeidsbok er ikke nødvendigvis arbeidsboken der vi skriver koden for øyeblikket. Hvis du har flere åpnede arbeidsbøker og hvilken arbeidsbok som er synlig på skjermen, betraktes den som aktiv arbeidsbok .
  • ThisWorkbook: ThisWorkbook er alltid arbeidsboken der vi skriver koden for øyeblikket.

Forskjell 2: Feilsanser

  • Aktiv arbeidsbok: Bruk av Aktiv i kodingen kan føre til mange feil og forvirring fordi vi aldri vet hvilken arbeidsbok som er aktiv med mindre vi spesifikt nevner arbeidsboken som skal aktiveres før vi bruker ordet Active Workbook.
  • ThisWorkbook: ThisWorkbook kan ikke gå galt fordi det ikke betyr noe hvilken arbeidsbok som er aktiv. Det tar alltid referansen til arbeidsboken der vi skriver koden.

Interessante artikler...