Excel VBA Tämä työkirja
VBA Tämä työkirja tarkoittaa työkirjaa, johon kirjoitamme excel-koodia. Jos esimerkiksi työskentelet työkirjassa nimeltä Myynti 2019.xlsx, viittaamme yleensä tällaiseen työkirjaan.
Työkirjat (“Myynti 2019.xlsx”). Aktivoi
Koodi aktivoi työkirjan nimeltä Myynti 2019.xlsx.
Tällaisen kirjoittamisen sijaan voimme yksinkertaisesti kirjoittaa VBA-koodin alla.
ThisWorkbook.Activate '
Tässä Tämä työkirja viittaa työkirjaan, johon kirjoitamme koodia. Viittaamalla tähän sanaan voimme suorittaa kaikki nykyisen työkirjan tehtävät ja välttää pitkiä koodeja täysin nimetyillä työkirjan nimillä.
Olen varma, että sinun on pitänyt nähdä myös sana "Active Workbook" viitatessasi muiden koodiin. Tämä on myös yksi koodauksessa usein käytetyistä sanoista. Näemme, mitä eroja näiden kahden sanan välillä on.
Työskentely ThisWorkbookin kanssa Excel VBA: ssa
Viitesana “ThisWorkbook” on luotettavampi kuin Workbooks-objektimääritin. Yksi inhimillisestä taipumuksesta on kirjoittaa työkirjan nimi väärin, mikä johtaa virheilmoituksen heittämiseen.
Vielä yksi tärkeä syy, miksi VBA ThisWorkbook on luotettavampi, koska siinä tapauksessa, että muutamme työkirjan nimeä, meidän on muutettava koodi, koska olemme käyttäneet sanaa "ThisWorkbook".

Joten, Tätä työkirjaa on turvallisempi käyttää viitattaessa työkirjaan, johon kirjoitamme koodia.
Esimerkki 1
Näemme joitain esimerkkejä, joissa voimme käyttää sanaa ThisWorkbook Excel VBA: ssa. Seuraava koodi tulostaa työkirjan nimen.
Koodi:
Sub TWB_Example1 () Dim WBName as String WBName = ThisWorkbook.Name MsgBox WBName End Sub

Kun suoritat koodin manuaalisesti tai sitten F5-näppäintä, yllä oleva koodi näyttää työkirjan nimen VBA: n viestiruudussa.

Esimerkki 2
Sen sijaan, että käytämme sanaa "Tämä työkirja", voimme käyttää muuttujia työkirjan viitteen asettamiseen ja jopa lyhentää koodin pituutta VBA: ssa. Katso esimerkiksi alla oleva koodi ensin.
Koodi:
Sub TWB_Example2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Aktivoi ThisWorkbook.Save ThisWorkbook.Sulje ThisWorkbook.SaveAs End Sub

Yllä olevassa koodissa on käytetty ”ThisWorkbook” koodin jokaisella rivillä. Kuinka vaikeaa on kirjoittaa sana joka kerta. Joten voimme minimoida tämän käyttämällä muuttujia.
Katso nyt alla olevaa koodia muuttujalla.
Koodi:
Sub TWB_Example2 () Dim Wb as Workbook Set Wb = ThisWorkbook Wb.Activate Wb.Worksheet ("Sheet1"). Aktivoi Wb.Save Wb.Sulje Wb.SaveAs End Sub

Näyttää kauniilta, eikö olekin?
Anna minun selittää koodi sinulle.
Ensinnäkin olen ilmoittanut muuttujan työkirjaobjektiksi.
Dim Wb työkirjana
Koska tämä on objektimuuttuja, meidän on asetettava viittaus tiettyyn työkirjaan. Joten olen käyttänyt "ThisWorkbook" -viitettä.
Aseta Wb = Tämä työkirja
Nyt muuttujaan "Wb" viitataan työkirjaan, johon kirjoitamme koodia tällä hetkellä. Tästä eteenpäin menettelyssä ei tarvitse käyttää sanaa "ThisWorkbook", vaan muuttujaa "Wb".
Active Workbook vs. ThisWorkbook in Excel VBA
Kuten kerroin artikkelin alussa, monet koodaajat käyttävät sanoja Active Workbook & ThisWorkbook hyvin usein VBA-koodauksessaan. Lukijana tai uutena oppijana ei ole helppoa ymmärtää näitä kahta. Joten anna minun selittää sinulle eroja.
Ero # 1: Merkitys
- Aktiivinen työkirja: Aktiivinen työkirja ei välttämättä ole työkirja, johon kirjoitamme koodia tällä hetkellä. Jos sinulla on useita avattuja työkirjoja ja kumpi työkirja näkyy näytöllä, sitä pidetään aktiivisena työkirjana .
- Tämä työkirja: Tämä työkirja on aina työkirja, johon kirjoitamme koodia tällä hetkellä.
Ero 2: Virhemahdollisuudet
- Aktiivinen työkirja: Aktiivisen käyttäminen koodauksessa voi aiheuttaa monia virheitä ja sekaannusta, koska emme koskaan tiedä, mikä työkirja on aktiivinen, ellemme mainitse aktivoitavaa työkirjaa ennen sanan Active Workbook käyttöä.
- Tämä työkirja: Tämä työkirja ei voi mennä pieleen, koska sillä ei ole väliä mikä työkirja on aktiivinen. Se vie aina työkirjan viitteen, johon kirjoitamme koodia.