VBA see tööraamat | Kuidas kasutada seda töövihiku atribuuti Exceli VBA-s?

Exceli VBA see tööraamat

VBA ThisWorkbook tähendab töövihikut, kuhu kirjutame Exceli koodi. Näiteks kui töötate töövihikus nimega „Müük 2019.xlsx“, siis viidame tavaliselt sellisele töövihikule.

Töövihikud („Müük 2019.xlsx”). Aktiveerige

Kood aktiveerib töövihiku nimega „Müük 2019.xlsx“.

Niimoodi kirjutamise asemel võime lihtsalt VBA koodi alla kirjutada.

ThisWorkbook.Activate '

Siin viidatakse selles töövihikus töövihikule, kuhu me koodi kirjutame. Sellele sõnale viidates saame täita kõik praeguses töövihikus olevad ülesanded ja vältida pikka nime täieliku nimega töövihiku nimega.

Olen kindel, et olete kindlasti näinud koodi „Active Workbook”, kui viitate teistele koodidele. See on ka üks kodeerimisel sageli kasutatavatest sõnadest. Näeme, mis on nende kahe sõna põhisõnade erinevused.

Töö selle tööraamatuga Exceli VBA-s

Viitesõna „ThisWorkbook” on usaldusväärsem kui töövihikute objekti kvalifikaator. Üks inimlik tendents on töövihiku nime valesti trükkimine, mille tulemuseks on veateate viskamine.

Veel üks oluline põhjus, miks VBA ThisWorkbook on usaldusväärsem, sest igaks juhuks, kui muudame töövihiku nime, peame koodi muutma, kuna oleme kasutanud sõna “ThisWorkbook”.

Niisiis, seda töövihikut on turvalisem kasutada töövihikule viitamiseks, kuhu me koodi kirjutame.

Selle VBA ThisWorkbook Exceli malli saate alla laadida siit - VBA ThisWorkbook Exceli mall

Näide 1

Näeme mõningaid näiteid, kus saame Exceli VBA-s kasutada sõna ThisWorkbook. Järgmine kood prindib töövihiku nime.

Kood:

 Sub TWB_Example1 () Dim WBName stringina WBName = ThisWorkbook.Nimi MsgBox WBName End Sub 

Kui käivitate koodi käsitsi või kasutate klahvi F5, kuvatakse ülaltoodud koodis töövihiku nimi VBA teatekastis.

Näide 2

Sõna „See töövihik“ asemel võime muutujate abil määrata töövihiku viite ja isegi vähendada koodi pikkust VBA-s. Näiteks vaadake kõigepealt allolevat koodi.

Kood:

 Subwb_Example2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Aktiveerige seeWorkbook.Salvesta seeWorkbook.Sulgege seeWorkbook.SaveAs End Sub 

Ülalolevas koodis on koodi „ThisWorkbook” kasutatud koodi igal real. Kui raske on iga kord sõna sisestada. Nii saame muutujate abil seda minimeerida.

Nüüd vaadake muutujaga allpool olevat koodi.

Kood:

 Sub TWB_Eexample2 () Dim Wb as Workbook Set Wb = ThisWorkbook Wb.Activate Wb.Worksheets ("Sheet1"). Aktiveerige Wb.Save Wb.Sulgege Wb.SaveAs End Sub 

Tundub ilus, kas pole ??

Las ma selgitan teile koodi.

Esiteks olen deklareerinud muutuja töövihiku objektiks.

Dim Wb töövihikuna

Kuna see on objektimuutuja, peame määrama viite konkreetsele töövihikule. Nii et olen kasutanud viidet “ThisWorkbook”.

Määra Wb = See tööraamat

Nüüd viidatakse muutujale „Wb” töövihikule, kuhu me parasjagu koodi kirjutame. Siit edasi ei pea me protseduuri jätkamisel kasutama sõna „ThisWorkbook“, vaid võime kasutada muutujat „Wb“

Aktiivne töövihik vs see töövihik Exceli VBA-s

Nagu ma artikli alguses ütlesin, kasutavad paljud kodeerijad oma VBA kodeerimisel väga sageli sõnu Active Workbook & ThisWorkbook. Lugejana või uue õppijana pole neist kahest lihtne aru saada. Nii et lubage mul selgitada teile mõningaid erinevusi.

Erinevus nr 1: tähendus

  • Aktiivne töövihik: Aktiivne töövihik ei ole tingimata töövihik, kuhu koodi praegu kirjutame. Kui teil on mitu avatud töövihikut ja kumb on teie ekraanil nähtav töövihik, loetakse see aktiivseks töövihikuks .
  • See tööraamat: see tööraamat on alati töövihik, kuhu me koodi praegu kirjutame.

Erinevus 2: vea tõenäosus

  • Aktiivne töövihik: Active'i kasutamine kodeerimisel võib põhjustada palju vigu ja segadust, sest me ei tea kunagi, milline töövihik on aktiivne, kui me ei maini enne sõna Active Workbook kasutamist eraldi aktiveeritavat töövihikut.
  • SeeWorkbook: SeeWorkbook ei saa valesti minna, sest pole tähtis, milline töövihik on aktiivne, see võtab alati töövihiku viite, kuhu koodi kirjutame.

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