VBA Tämä työkirja | Kuinka käyttää tätä työkirjan ominaisuutta Excel VBA: ssa?

Excel VBA Tämä työkirja

VBA Tämä työkirja tarkoittaa työkirjaa, johon kirjoitamme excel-koodia. Esimerkiksi, jos 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ökirjojen 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 koodia, koska olemme käyttäneet sanaa "ThisWorkbook".

Joten, Tätä työkirjaa on turvallisempaa käyttää viitattaessa työkirjaan, johon kirjoitamme koodia.

Voit ladata tämän VBA ThisWorkbook Excel -mallin täältä - VBA ThisWorkbook Excel -malli

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äytettäisimme 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.

Ensin 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 "Tämä työkirja", vaan voimme käyttää muuttujaa "Wb"

Aktiivinen työkirja vs. tämä työkirja Excel VBA: ssa

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.

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