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

Sisällysluettelo

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.

Mielenkiintoisia artikkeleita...