VBA ThisWorkbook - Cum se folosește proprietatea ThisWorkbook în Excel VBA?

Excel VBA ThisWorkbook

VBA ThisWorkbook înseamnă registrul de lucru în care scriem codul excel. De exemplu, dacă lucrați în registrul de lucru numit „Vânzări 2019.xlsx”, de obicei ne referim la registrul de lucru astfel.

Cărți de lucru („Vânzări 2019.xlsx”). Activați

Codul va activa registrul de lucru numit „Vânzări 2019.xlsx”.

În loc să scriem așa, putem scrie pur și simplu codul VBA de mai jos.

ThisWorkbook.Activate '

Aici ThisWorkbook se referă la registrul de lucru în care scriem codul. Referindu-ne la acest cuvânt, putem executa toate sarcinile din registrul de lucru curent și putem evita un cod lung cu un nume complet al registrului de lucru.

Sunt sigur că trebuie să fi văzut și cuvântul „Cartea de lucru activă” când te referi la codul celorlalți. Acesta este, de asemenea, unul dintre cuvintele des utilizate în codificare. Vom vedea care sunt diferențele dintre aceste două cuvinte în bază.

Lucrul cu ThisWorkbook în Excel VBA

Cuvântul de referință „ThisWorkbook” este mai fiabil decât calificatorul de obiect Workbooks. Una dintre tendințele umane este tastarea greșită a numelui registrului de lucru, ceea ce duce la aruncarea unui mesaj de eroare.

Un motiv mai important pentru care VBA ThisWorkbook este mai fiabil pentru că, în cazul în care dacă schimbăm numele registrului de lucru, trebuie să modificăm codul, deoarece am folosit cuvântul „ThisWorkbook”.

Deci, ThisWorkbook este mai sigur de utilizat pentru referirea la registrul de lucru în care scriem codul.

Exemplul nr. 1

Vom vedea câteva dintre exemplele în care putem folosi cuvântul ThisWorkbook în excel VBA. Următorul cod va imprima numele registrului de lucru.

Cod:

Sub TWB_Example1 () Dim WBName As String WBName = ThisWorkbook.Name MsgBox WBName End Sub

Când rulați codul manual sau utilizând tasta F5, codul de mai sus va afișa numele registrului de lucru în caseta de mesaje din VBA.

Exemplul nr. 2

În loc să folosim cuvântul „Acest registru de lucru”, putem folosi variabile pentru a seta referința registrului de lucru și chiar să reducem drastic lungimea codului în VBA. De exemplu, uitați-vă mai întâi la codul de mai jos.

Cod:

Sub TWB_Example2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Activează ThisWorkbook.Save ThisWorkbook.Inchide ThisWorkbook.SaveAs End Sub

Codul de mai sus a folosit „ThisWorkbook” în fiecare linie a codului. Cât de greu este să tastați cuvântul de fiecare dată. Deci, putem reduce acest lucru folosind variabile.

Acum, uitați-vă la codul de mai jos cu variabila.

Cod:

Sub TWB_Example2 () Dim Wb As Workbook Set Wb = ThisWorkbook Wb.Active Wb.Worksheets ("Sheet1"). Activați Wb.Save Wb.Închide Wb.SaveAs End Sub

Arata frumos, nu-i asa ??

Permiteți-mi să vă explic codul.

În primul rând, am declarat variabila ca obiect de registru de lucru.

Dim Wb Ca registru de lucru

Deoarece aceasta este o variabilă obiect, trebuie să setăm referința la registrul de lucru special. Așa că am folosit referința „ThisWorkbook”.

Setați Wb = ThisWorkbook

Acum, variabila „Wb” face trimitere la registrul de lucru în care scriem codul în acest moment. De aici înainte în continuare, nu trebuie să folosim cuvântul „ThisWorkbook”, ci putem folosi variabila „Wb”.

Cartea de lucru activă vs. ThisWorkbook în Excel VBA

După cum am spus la începutul articolului, mulți codificatori folosesc cuvintele Active Workbook și ThisWorkbook foarte des în codurile lor VBA. Ca un cititor sau un nou cursant, nu este ușor să înțelegeți acești doi. Deci, permiteți-mi să vă explic câteva dintre diferențe.

Diferența # 1: Înțeles

  • Cartea de lucru activă: Cartea de lucru activă nu este neapărat registrul de lucru în care scriem codul în acest moment. Dacă aveți mai multe cărți de lucru deschise și oricare dintre acestea este vizibilă pe ecran este considerată ca fiind Cartea de lucru activă .
  • ThisWorkbook: ThisWorkbook este întotdeauna registrul de lucru în care scriem codul în acest moment.

Diferența 2: Șanse de eroare

  • Cartea de lucru activă: utilizarea activă în codificare poate duce la numeroase erori și confuzii, deoarece nu știm niciodată ce registru de lucru este activ, cu excepția cazului în care menționăm în mod specific cartea de lucru pe care să o activăm înainte de a utiliza cuvântul Cartea de lucru activă.
  • ThisWorkbook: ThisWorkbook nu poate merge prost, deoarece nu contează ce registru de lucru este activ. Este nevoie întotdeauna de referința registrului de lucru în care scriem codul.

Articole interesante...