VBA ThisWorkbook - Kako uporabiti to lastnost delovne knjige v Excelu VBA?

Excel VBA ThisWorkbook

VBA ThisWorkbook pomeni delovni zvezek, v katerega pišemo kodo excel. Če na primer delate v delovnem zvezku z imenom »Prodaja 2019.xlsx«, se navadno sklicujemo na ta delovni zvezek.

Delovni zvezki (»Prodaja 2019.xlsx«). Aktivirajte

Koda bo aktivirala delovni zvezek z imenom »Prodaja 2019.xlsx«.

Namesto da pišemo tako, lahko spodaj preprosto napišemo kodo VBA.

ThisWorkbook.Activate '

Tu se ThisWorkbook nanaša na delovni zvezek, kamor pišemo kodo. S sklicevanjem na to besedo lahko izvedemo vsa opravila v trenutnem delovnem zvezku in se izognemo dolgotrajni kodi s popolnoma imenovanim imenom delovnega zvezka.

Prepričan sem, da ste pri sklicevanju na kodo drugih morali videti tudi besedo »Active Workbook«. To je tudi ena od pogosto uporabljenih besed pri kodiranju. Videli bomo, kakšne so razlike med tema dvema besedama v osnovnem.

Delo s to knjigo v Excelu VBA

Referenčna beseda »ThisWorkbook« je bolj zanesljiva kot kvalifikator predmeta Workbooks. Ena izmed človeških teženj je napačno tipkanje imena delovnega zvezka, kar povzroči sporočilo o napaki.

Še en pomemben razlog, zakaj je VBA ThisWorkbook bolj zanesljiv, ker moramo za vsak slučaj, če spremenimo ime delovnega zvezka, spremeniti kodo, ker smo uporabili besedo »ThisWorkbook«.

Torej je ThisWorkbook varnejši za sklicevanje na delovni zvezek, kjer pišemo kodo.

Primer # 1

Videli bomo nekaj primerov, v katerih lahko uporabimo besedo ThisWorkbook v excelu VBA. Naslednja koda bo natisnila ime delovnega zvezka.

Koda:

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

Ko zaženete kodo ročno ali s tipko F5, bo zgornja koda v polju za sporočila v VBA prikazala ime delovnega zvezka.

2. primer

Namesto da uporabimo besedo »Ta delovni zvezek«, lahko s spremenljivkami nastavimo sklic na delovni zvezek in celo drastično zmanjšamo dolžino kode v VBA. Na primer, najprej poglejte spodnjo kodo.

Koda:

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

Zgornja koda je uporabila “ThisWorkbook” v vseh vrsticah kode. Kako težko je vsakič vtipkati besedo. Torej, to lahko zmanjšamo z uporabo spremenljivk.

Zdaj si oglejte spodnjo kodo s spremenljivko.

Koda:

Sub TWB_Example2 () Dim Wb Kot komplet delovnih zvezkov Wb = ThisWorkbook Wb.Activate Wb.Worksheets ("Sheet1"). Aktivirajte Wb.Save Wb.Close Wb.SaveAs End Sub

Izgleda čudovito, kajne ??

Naj vam razložim kodo.

Najprej sem spremenljivko razglasil kot objekt v delovnem zvezku.

Zatemni Wb kot delovni zvezek

Ker je to spremenljivka predmeta, moramo nastaviti sklic na določen delovni zvezek. Zato sem uporabil referenco »ThisWorkbook«.

Set Wb = ThisWorkbook

Zdaj je spremenljivka “Wb” navedena v delovnem zvezku, kjer trenutno pišemo kodo. Od zdaj naprej v postopku nam ni treba uporabljati besede "ThisWorkbook", lahko pa spremenljivko "Wb."

Active Workbook vs. ThisWorkbook v Excelu VBA

Kot sem povedal na začetku članka, veliko programerjev pri kodiranju VBA zelo pogosto uporablja besede Active Workbook & ThisWorkbook. Kot bralca ali novega učenca teh dveh ni lahko razumeti. Torej, naj vam razložim nekatere razlike.

Razlika št. 1: Pomen

  • Aktivni delovni zvezek: Aktivni delovni zvezek ni nujno delovni zvezek, kamor trenutno pišemo kodo. Če imate več odprtih delovnih zvezkov in kar koli je delovni zvezek viden na vašem zaslonu, se šteje za aktivni delovni zvezek .
  • ThisWorkbook: ThisWorkbook je vedno delovni zvezek, kamor trenutno pišemo kodo.

Razlika 2: Napake

  • Aktivni delovni zvezek: uporaba aktivnega v kodiranju lahko privede do številnih napak in zmede, saj nikoli ne vemo, kateri delovni zvezek je aktiven, razen če izrecno omenimo delovni zvezek, ki ga je treba aktivirati, preden uporabimo besedo Active Workbook.
  • ThisWorkbook: ThisWorkbook ne more iti narobe, ker ni pomembno, kateri delovni zvezek je aktiven. Vedno se sklicuje na delovni zvezek, kamor pišemo kodo.

Zanimive Članki...