ExcelWBA ThisWorkbook
VBA ThisWorkbook znamená zošit, do ktorého píšeme kód programu Excel. Napríklad ak pracujete v zošite s názvom „Predaj 2019.xlsx“, zvyčajne sa na tento zošit odvolávame takto.
Zošity („Predaj 2019.xlsx“). Aktivujte
Tento kód aktivuje zošit s názvom „Predaj 2019.xlsx“.
Namiesto toho, aby sme takto písali, môžeme jednoducho napísať kód VBA nižšie.
ThisWorkbook.Activate '
Tu ThisWorkbook odkazuje na zošit, do ktorého píšeme kód. Odkazom na toto slovo môžeme vykonať všetky úlohy v aktuálnom zošite a vyhnúť sa zdĺhavému kódu s úplne pomenovaným názvom zošita.
Som si istý, že ste určite videli aj slovo „Aktívny zošit“, keď odkazujete na kód ostatných. Toto je tiež jedno z často používaných slov pri kódovaní. Uvidíme, aké sú rozdiely medzi týmito dvoma základnými slovami.
Práca s týmto pracovným zošitom v programe Excel VBA
Referenčné slovo „ThisWorkbook“ je spoľahlivejšie ako kvalifikátor objektu Workbooks. Jednou z ľudských tendencií je nesprávne zadávanie názvu zošita, čo má za následok chybové hlásenie.
Ďalším dôležitým dôvodom, prečo je VBA ThisWorkbook spoľahlivejší, pretože iba v prípade, že zmeníme názov zošita, musíme zmeniť kód, pretože sme použili slovo „ThisWorkbook“.
![](https://cdn.know-base.net/1411564/vba_thisworkbook_how_to_use_thisworkbook_property_in_excel_vba__2.png.webp)
ThisWorkbook je teda bezpečnejšie použiť pri odkazovaní na zošit, do ktorého píšeme kód.
Príklad č
Uvidíme niektoré z príkladov, kde môžeme použiť slovo ThisWorkbook v programe Excel VBA. Nasledujúci kód vytlačí názov zošita.
Kód:
Sub TWB_Example1 () Dim WBName ako reťazec WBName = ThisWorkbook.Name MsgBox WBName End Sub
![](https://cdn.know-base.net/1411564/vba_thisworkbook_how_to_use_thisworkbook_property_in_excel_vba__3.png.webp)
Keď spustíte kód manuálne alebo pomocou klávesu F5, vyššie uvedený kód zobrazí názov zošita v poli so správou vo VBA.
![](https://cdn.know-base.net/1411564/vba_thisworkbook_how_to_use_thisworkbook_property_in_excel_vba_.gif)
Príklad č
Namiesto použitia slova „Tento zošit“ môžeme pomocou premenných nastaviť odkaz na zošit a dokonca vo VBA drasticky znížiť dĺžku kódu. Napríklad sa najskôr pozrite na nižšie uvedený kód.
Kód:
Sub TWB_Example2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Activate ThisWorkbook.Save ThisWorkbook.Close ThisWorkbook.SaveAs End Sub
![](https://cdn.know-base.net/1411564/vba_thisworkbook_how_to_use_thisworkbook_property_in_excel_vba__4.png.webp)
Vyššie uvedený kód použil výraz „ThisWorkbook“ v každom riadku kódu. Aké ťažké je napísať slovo vždy. Takže to môžeme minimalizovať použitím premenných.
Teraz sa pozrite na nasledujúci kód s premennou.
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
![](https://cdn.know-base.net/1411564/vba_thisworkbook_how_to_use_thisworkbook_property_in_excel_vba__5.png.webp)
Vyzerá krásne, však?
Chcem vám vysvetliť kód.
Najskôr som premennú vyhlásil za objekt zošita.
Dim Wb As Workbook
Pretože sa jedná o objektovú premennú, musíme nastaviť odkaz na konkrétny zošit. Použil som teda referenciu „ThisWorkbook“.
Nastaviť Wb = ThisWorkbook
Teraz sa premenná „Wb“ vzťahuje na zošit, do ktorého momentálne píšeme kód. Od tejto chvíle nebudeme musieť používať slovo „ThisWorkbook“, ale aj premennú „Wb“.
Aktívny zošit vs. ThisWorkbook v programe Excel VBA
Ako som povedal na začiatku článku, veľa programátorov používa vo svojom kódovaní VBA veľmi často slová Active Workbook & ThisWorkbook. Ako čitateľ alebo nový študent nie je ľahké porozumieť týmto dvom. Dovoľte mi teda vysvetliť vám niektoré rozdiely.
Rozdiel # 1: Význam
- Aktívny zošit: Aktívny zošit nemusí byť nutne zošit, do ktorého momentálne píšeme kód. Ak máte viac otvorených zošitov a ten, ktorý je zošit viditeľný na obrazovke, sa považuje za aktívny zošit .
- ThisWorkbook: ThisWorkbook je vždy zošit, do ktorého momentálne píšeme kód.
Rozdiel 2: Chybové šance
- Aktívny zošit: Použitie aktívneho v kódovaní môže viesť k mnohým chybám a zmätkom, pretože nikdy nevieme, ktorý zošit je aktívny, pokiaľ konkrétne nezmeníme zošit, ktorý sa má aktivovať, pred použitím slova Aktívny zošit.
- ThisWorkbook: ThisWorkbook nemôže pokaziť, pretože nezáleží na tom, ktorý zošit je aktívny. Vždy to vezme odkaz na zošit, kde píšeme kód.