Excel VBA Ez a munkafüzet
VBA Ez a munkafüzet azt a munkafüzetet jelenti, amelybe az excel kódot írjuk. Például, ha az „Értékesítés 2019.xlsx” nevű munkafüzetben dolgozik, akkor általában az ilyen munkafüzetre hivatkozunk.
Munkafüzetek („Értékesítés 2019.xlsx”). Aktiválás
A kód aktiválja a „Sales 2019.xlsx” nevű munkafüzetet.
Ilyen írás helyett egyszerűen megírhatjuk az alábbiakban a VBA kódot.
ThisWorkbook.Activate '
Itt Ez a munkafüzet arra a munkafüzetre utal, ahol a kódot írjuk. Erre a szóra hivatkozva végrehajthatjuk az aktuális munkafüzet összes feladatát, és elkerülhetjük a hosszú kódokat egy teljesen megnevezett munkafüzet-névvel.
Biztos vagyok benne, hogy Ön is látta az „Aktív munkafüzet” szót, amikor a többi kódra hivatkozik. Ez is a kódolásban gyakran használt szavak egyike. Meglátjuk, mi a különbség e két szó között az alapszintben.
A ThisWorkbook használata az Excel VBA-ban
A „ThisWorkbook” referenciaszó megbízhatóbb, mint a Workbooks objektumminősítő. Az egyik emberi tendencia a munkafüzet nevének hibás beírása, ami hibaüzenetet dob.
Még egy fontos ok, amiért a VBA ThisWorkbook megbízhatóbb, mert minden esetben, ha megváltoztatjuk a munkafüzet nevét, meg kell változtatnunk a kódot, mert a „ThisWorkbook” szót használtuk.

Tehát a ThisWorkbook biztonságosabb használni a munkafüzetre való hivatkozásra, ahol a kódot írjuk.
1. példa
Látni fogunk néhány példát, ahol a ThisWorkbook szót használhatjuk az excel VBA-ban. A következő kód kinyomtatja a munkafüzet nevét.
Kód:
TWB_Example1 () Dim WBName mint karakterlánc WBName = ThisWorkbook.Név MsgBox WBName End Sub

Amikor manuálisan futtatja a kódot, vagy az F5 billentyű használatával, a fenti kód a munkafüzet nevét jeleníti meg a VBA üzenetmezőjében.

2. példa
A „Ez a munkafüzet” szó helyett változókkal állíthatjuk be a munkafüzet hivatkozását, sőt drasztikusan csökkenthetjük a kód hosszát a VBA-ban. Például először nézze meg az alábbi kódot.
Kód:
TWB_Example2 () Ez a munkafüzet. Aktiválja ezt a munkafüzetet. Munkafüzetek ("1. lap"). Aktiválja ezt a munkafüzetet. Mentse el ezt a munkafüzetet. Zárja be ezt a munkafüzetet.

A fenti kód a „ThisWorkbook” szót használta a kód minden sorában. Milyen nehéz minden egyes alkalommal beírni a szót. Tehát ezt változók segítségével minimalizálhatjuk.
Most nézze meg az alábbi kódot a változóval.
Kód:
TWB_Example2 () Dim Wb Workbook Set Wb = This Workbook Wb.A Wb.Worksheets ("Sheet1") aktiválása. Aktiválja a Wb.Save Wb.Close Wb.SaveAs End Sub részt

Gyönyörűen néz ki, nem ??
Hadd magyarázzam el a kódot nektek.
Először deklaráltam a változót munkafüzet objektumként.
Dim Wb munkafüzetként
Mivel ez egy objektumváltozó, meg kell adnunk a hivatkozást az adott munkafüzetre. Tehát a „ThisWorkbook” referenciát használtam.
Set Wb = ThisWorkbook
Most a „Wb” változóra hivatkozunk a munkafüzetre, ahol éppen a kódot írjuk. Az eljárás folytatásától kezdve nem kell a „ThisWorkbook” szót használni, hanem a „Wb” változót.
Aktív munkafüzet és ThisWorkbook az Excel VBA-ban
Mint a cikk elején elmondtam, sok kódoló nagyon gyakran használja az Active Workbook & ThisWorkbook szavakat a VBA kódolásakor. Olvasóként vagy új tanulóként nem könnyű megérteni ezt a kettőt. Tehát hadd magyarázzam el nektek a különbségeket.
1. különbség: Jelentés
- Aktív munkafüzet: Az Aktív munkafüzet nem feltétlenül az a munkafüzet, ahová éppen a kódot írjuk. Ha több nyitott munkafüzete van, és amelyik munkafüzet látható a képernyőn, az aktív munkafüzetnek számít .
- Ez a munkafüzet : Ez a munkafüzet mindig az a munkafüzet, ahová éppen a kódot írjuk.
2. különbség: Hiba esélyek
- Aktív munkafüzet: Az Active használata a kódolásban sok hibához és zavart okozhat, mert soha nem tudjuk, melyik munkafüzet aktív, kivéve, ha az Aktív munkafüzet szó használata előtt külön megemlítjük az aktiválandó munkafüzetet.
- ThisWorkbook: ThisWorkbook nem baj, mert nem számít, hogy melyik munkafüzet aktív. Mindig a munkafüzet hivatkozására van szükség, ahova a kódot írjuk.