VBA Šis darbo knyga | Kaip naudoti „ThisWorkbook“ ypatybę „Excel VBA“?

„Excel VBA ThisWorkbook“

VBA ThisWorkbook reiškia darbaknygę, kurioje rašome „Excel“ kodą. Pvz., Jei dirbate darbaknygėje, pavadintoje „Pardavimai 2019.xlsx“, mes paprastai vadiname tokią darbaknygę.

Darbaknygės („Sales 2019.xlsx“). Suaktyvinti

Kodas suaktyvins darbaknygę pavadinimu „Pardavimai 2019.xlsx“.

Užuot taip rašę, mes galime tiesiog parašyti VBA kodą žemiau.

ThisWorkbook.Activate '

Čia šiame darbo knygoje nurodoma darbaknygė, kurioje rašome kodą. Nurodydami šį žodį, galime atlikti visas dabartinės darbaknygės užduotis ir išvengti ilgo kodo su visiškai pavadintu darbaknygės pavadinimu.

Esu tikras, kad jūs taip pat turite matyti žodį „Aktyvi darbaknygė“, kai kalbate apie kitus kodus. Tai taip pat yra vienas iš dažnai naudojamų žodžių koduojant. Pamatysime, kokie yra šių dviejų pagrindinių žodžių skirtumai.

Darbas su „ThisWorkbook“ „Excel VBA“

Pamatinis žodis „ThisWorkbook“ yra patikimesnis nei „Workbooks“ objekto kvalifikatorius. Viena iš žmogaus tendencijų yra neteisingai įvesti darbaknygės pavadinimą, dėl kurio atsiranda klaidos pranešimas.

Dar viena svarbi priežastis, kodėl „VBA ThisWorkbook“ yra patikimesnė, nes tik tuo atveju, jei pakeisime darbaknygės pavadinimą, turime pakeisti kodą, nes naudojome žodį „ThisWorkbook“.

Taigi, „ThisWorkbook“ yra saugiau naudoti nurodant darbaknygę, kurioje rašome kodą.

Galite atsisiųsti šį „VBA ThisWorkbook Excel“ šabloną čia - „VBA ThisWorkbook Excel“ šabloną

1 pavyzdys

Pamatysime keletą pavyzdžių, kai „Excel VBA“ galime naudoti žodį „ThisWorkbook“. Šis kodas atspausdins darbaknygės pavadinimą.

Kodas:

 TWB_Pavyzdys1 () Dim WBName kaip eilutė WBName = ThisWorkbook.Name MsgBox WBName End Sub Sub 

Kai paleidžiate kodą rankiniu būdu arba naudodamiesi klavišu F5, aukščiau pateiktas kodas VBA pranešimų laukelyje parodys darbaknygės pavadinimą.

2 pavyzdys

Užuot naudoję žodį „Ši darbaknygė“, mes galime naudoti kintamuosius norėdami nustatyti darbaknygės nuorodą ir netgi labai sumažinti kodo ilgį VBA. Pavyzdžiui, pirmiausia pažiūrėkite į žemiau esantį kodą.

Kodas:

 TWB_Pavyzdys2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Suaktyvinkite šią darbo knygą. Išsaugokite šią darbo knygą. Uždarykite šią darbo knygą. 

Aukščiau pateiktame kode kiekvienoje kodo eilutėje buvo naudojamas „ThisWorkbook“. Kaip sunku kiekvieną kartą įvesti žodį. Taigi, mes galime sumažinti tai naudodami kintamuosius.

Dabar pažvelkite į žemiau esantį kodą su kintamuoju.

Kodas:

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

Gražiai atrodo, ar ne ??

Leiskite man paaiškinti kodą jums, vaikinai.

Pirmiausia aš paskelbiau kintamąjį kaip „Workbook“ objektą.

Dim Wb kaip darbaknygė

Kadangi tai yra objekto kintamasis, turime nustatyti nuorodą į konkrečią darbaknygę. Taigi aš naudojausi „ThisWorkbook“ nuoroda.

Nustatyti Wb = ThisWorkbook

Dabar kintamasis „Wb“ nurodomas darbaknygėje, kurioje šiuo metu rašome kodą. Nuo šiol toliau nereikia naudoti žodžio „ThisWorkbook“, o galime naudoti kintamąjį „Wb“

„Active Workbook“ ir „ThisWorkbook“ „Excel VBA“

Kaip sakiau straipsnio pradžioje, daugelis koduotojų VBA koduodami labai dažnai naudoja žodžius „Active Workbook & ThisWorkbook“. Kaip skaitytojui ar naujai besimokančiam, suprasti šiuos du nėra lengva. Taigi, leiskite man paaiškinti kai kuriuos skirtumus.

Skirtumas Nr. 1: prasmė

  • „Active Workbook“: „ Active Workbook“ nebūtinai yra darbaknygė, kuriai šiuo metu rašome kodą. Jei turite kelias atidarytas darbaknyges ir kuri darbaknygė matoma ekrane, laikoma aktyvia darbaknygė .
  • Šis darbo knyga : ši darbo knyga visada yra darbaknygė, kurioje šiuo metu rašome kodą.

2 skirtumas: klaidų tikimybė

  • Aktyvi darbaknygė: naudojant „Active“ koduojant gali kilti daug klaidų ir painiavos, nes niekada nežinome, kuri darbaknygė yra aktyvi, nebent prieš vartodami žodį „Aktyvi darbaknygė“ konkrečiai paminėtume aktyvuojamą darbaknygę.
  • ThisWorkbook: ThisWorkbook negali suklysti, nes nesvarbu, kuri darbaknygė yra aktyvi, ji visada pateikia darbaknygės nuorodą, kur rašome kodą.

$config[zx-auto] not found$config[zx-overlay] not found