VBA ThisWorkbook - Jak používat vlastnost ThisWorkbook v aplikaci Excel VBA?

Excel VBA ThisWorkbook

VBA ThisWorkbook znamená sešit, do kterého píšeme kód aplikace Excel. Například pokud pracujete v sešitu s názvem „Prodej 2019.xlsx“, obvykle sešit označujeme takto.

Sešity („Prodej 2019.xlsx“). Aktivujte

Tento kód aktivuje sešit s názvem „Prodej 2019.xlsx“.

Místo takového psaní můžeme jednoduše napsat kód VBA níže.

ThisWorkbook.Activate '

Zde ThisWorkbook odkazuje na sešit, do kterého píšeme kód. Odkázáním na toto slovo můžeme provést všechny úkoly v aktuálním sešitu a vyhnout se zdlouhavému kódu s plně pojmenovaným názvem sešitu.

Jsem si jistý, že jste také viděli slovo „Aktivní sešit“, když odkazujete na kód ostatních. Toto je také jedno z často používaných slov v kódování. Uvidíme, jaké jsou rozdíly mezi těmito dvěma základními slovy.

Práce s ThisWorkbook v Excelu VBA

Referenční slovo „ThisWorkbook“ je spolehlivější než kvalifikátor objektu Workbooks. Jednou z lidských tendencí je nesprávné zadávání názvu sešitu, což má za následek zobrazení chybové zprávy.

Ještě jeden důležitý důvod, proč je VBA ThisWorkbook spolehlivější, protože pouze v případě, že změníme název sešitu, musíme změnit kód, protože jsme použili slovo „ThisWorkbook“.

ThisWorkbook je tedy bezpečnější použít pro odkazování na sešit, kde píšeme kód.

Příklad č. 1

Uvidíme některé z příkladů, kde můžeme použít slovo ThisWorkbook v aplikaci Excel VBA. Následující kód vytiskne název sešitu.

Kód:

Sub TWB_Example1 () Dim WBName jako řetězec WBName = ThisWorkbook.Name MsgBox WBName End Sub

Když spustíte kód ručně nebo pomocí klávesy F5, výše uvedený kód zobrazí název sešitu v okně se zprávou ve VBA.

Příklad č. 2

Místo použití slova „Tento sešit“ můžeme pomocí proměnných nastavit odkaz na sešit a dokonce ve VBA drasticky snížit délku kódu. Nejprve se například podívejte na níže uvedený kód.

Kód:

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

Výše uvedený kód použil „ThisWorkbook“ v každém řádku kódu. Jak těžké je psát slovo pokaždé. Můžeme to tedy minimalizovat pomocí proměnných.

Nyní se podívejte na níže uvedený kód s proměnnou.

Kód:

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

Vypadá krásně, že?

Dovolte mi, abych vám kód vysvětlil.

Nejprve jsem proměnnou deklaroval jako objekt sešitu.

Dim Wb As Workbook

Jelikož se jedná o objektovou proměnnou, musíme nastavit odkaz na konkrétní sešit. Použil jsem tedy odkaz „ThisWorkbook“.

Nastavit Wb = ThisWorkbook

Nyní se proměnná „Wb“ odkazuje na sešit, ve kterém právě píšeme kód. Od této chvíle nebudeme muset místo toho používat slovo „ThisWorkbook“, můžeme použít proměnnou „Wb“.

Aktivní sešit vs. ThisWorkbook v aplikaci Excel VBA

Jak jsem řekl na začátku článku, mnoho programátorů používá ve svém kódování VBA velmi často slova Active Workbook & ThisWorkbook. Jako čtenář nebo nový student není snadné těmto dvěma porozumět. Dovolte mi tedy vysvětlit vám některé rozdíly.

Rozdíl č. 1: Význam

  • Aktivní sešit: Aktivní sešit nemusí být nutně sešit, ve kterém právě píšeme kód. Pokud máte více otevřených sešitů a jakýkoli sešit je viditelný na obrazovce, považuje se to za aktivní sešit .
  • ThisWorkbook: ThisWorkbook is always the workbook where we are writing the code at the moment.

Rozdíl 2: Chybové šance

  • Aktivní sešit: Použití Active v kódování může vést k mnoha chybám a zmatkům, protože nikdy nevíme, který sešit je aktivní, pokud výslovně nezmíníme sešit, který se má aktivovat před použitím slova Aktivní sešit.
  • ThisWorkbook: ThisWorkbook nemůže pokazit, protože nezáleží na tom, který sešit je aktivní. Vždy to bere odkaz na sešit, kde píšeme kód.

Zajímavé články...