VBA šī darba grāmata | Kā izmantot šo darbgrāmatas rekvizītu programmā Excel VBA?

Excel VBA Šī darba grāmata

VBA ThisWorkbook ir darbgrāmata, kurā mēs rakstām Excel kodu. Piemēram, ja strādājat darbgrāmatā ar nosaukumu “Pārdošana 2019.xlsx”, mēs parasti atsaucamies uz šo darbgrāmatu.

Darbgrāmatas (“Sales 2019.xlsx”). Aktivizēt

Kods aktivizēs darbgrāmatu ar nosaukumu “Pārdošana 2019.xlsx”.

Tā vietā, lai rakstītu šādi, mēs varam vienkārši ierakstīt VBA kodu zemāk.

ThisWorkbook.Activate '

Šeit šī darba grāmata attiecas uz darbgrāmatu, kurā mēs rakstām kodu. Atsaucoties uz šo vārdu, mēs varam izpildīt visus pašreizējās darbgrāmatas uzdevumus un izvairīties no gara koda ar pilnībā nosauktu darbgrāmatas nosaukumu.

Esmu pārliecināts, ka, atsaucoties uz pārējo kodu, noteikti esat redzējis arī vārdu “Aktīvā darbgrāmata”. Šis ir arī viens no bieži izmantotajiem vārdiem kodēšanā. Mēs redzēsim, kādas ir atšķirības starp šiem diviem vārdiem pamata valodā.

Darbs ar ThisWorkbook programmā Excel VBA

Atsauces vārds “ThisWorkbook” ir ticamāks par darbgrāmatu objekta kvalifikatoru. Viena no cilvēku tendencēm ir nepareiza darbgrāmatas nosaukuma ievadīšana, kā rezultātā tiek izmests kļūdas ziņojums.

Vēl viens svarīgs iemesls, kāpēc VBA ThisWorkbook ir uzticamāka, jo katram gadījumam, ja mainām darbgrāmatas nosaukumu, ir jāmaina kods, jo esam izmantojuši vārdu “ThisWorkbook”.

Tātad, šo darbgrāmatu ir drošāk izmantot, atsaucoties uz darbgrāmatu, kurā mēs rakstām kodu.

Šo VBA ThisWorkbook Excel veidni varat lejupielādēt šeit - VBA ThisWorkbook Excel veidne

1. piemērs

Mēs redzēsim dažus piemērus, kur mēs varam izmantot vārdu ThisWorkbook programmā Excel VBA. Šis kods izdrukās darbgrāmatas nosaukumu.

Kods:

 TWB_Example1 () Dim WBName kā virkne WBName = ThisWorkbook.Name MsgBox WBName End Sub 

Palaižot kodu manuāli vai izmantojot F5 taustiņu, iepriekš minētais kods darbgrāmatas nosaukumu parādīs VBA ziņojumu lodziņā.

2. piemērs

Vārda “Šī darbgrāmata” vietā mēs varam izmantot mainīgos, lai iestatītu darbgrāmatas atsauci un pat krasi samazinātu koda garumu VBA. Piemēram, vispirms apskatiet zemāk redzamo kodu.

Kods:

 Sub TWB_Example2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Aktivizējiet šoWorkbook.Save toWorkbook.Close ThisWorkbook.SaveAs End Sub 

Iepriekš minētajā kodā visās koda rindās ir izmantots “ThisWorkbook”. Cik grūti ir katru reizi ierakstīt vārdu. Tātad, mēs varam to samazināt, izmantojot mainīgos.

Tagad aplūkojiet zemāk esošo kodu ar mainīgo.

Kods:

 Sub TWB_Example2 () Dim Wb As Workbook Set Wb = ThisWorkbook Wb.Activate Wb.Worksheets ("Sheet1"). Aktivizējiet Wb.Save Wb.Close Wb.SaveAs End Sub 

Izskatās skaisti, vai ne ??

Ļaujiet man paskaidrot kodu jums, puiši.

Vispirms esmu deklarējis mainīgo kā darbgrāmatas objektu.

Dim Wb kā darbgrāmata

Tā kā tas ir objekta mainīgais, mums jāiestata atsauce uz konkrēto darbgrāmatu. Tāpēc esmu izmantojis atsauci “ThisWorkbook”.

Iestatīt Wb = ThisWorkbook

Tagad mainīgais “Wb” ir atsauce uz darbgrāmatu, kurā mēs pašlaik rakstām kodu. Turpmāk turpinot procedūru, mums nav jāizmanto vārds “ThisWorkbook”, tā vietā mēs varam izmantot mainīgo “Wb”

Aktīvā darbgrāmata pret šo darbgrāmatu programmā Excel VBA

Kā es teicu raksta sākumā, daudzi kodētāji VBA kodēšanā ļoti bieži izmanto vārdus Active Workbook & ThisWorkbook. Kā lasītāju vai jaunu izglītojamo nav viegli saprast šos divus. Tātad, ļaujiet man paskaidrot jums dažas atšķirības.

Atšķirība Nr. 1: nozīme

  • Aktīvā darbgrāmata: Aktīvā darbgrāmata nav obligāti darbgrāmata, kurā mēs pašlaik rakstām kodu. Ja jums ir vairākas atvērtas darbgrāmatas un kura darbgrāmata ir redzama ekrānā, tiek uzskatīta par aktīvo darbgrāmatu .
  • ThisWorkbook: ThisWorkbook vienmēr ir darbgrāmata, kurā mēs pašlaik rakstām kodu.

2. atšķirība: kļūdu iespējamība

  • Aktīvā darbgrāmata: Aktīvā izmantošana kodēšanā var radīt daudzas kļūdas un neskaidrības, jo mēs nekad nezinām, kura darbgrāmata ir aktīva, ja vien mēs īpaši neminējam darbgrāmatu, kas jāaktivizē pirms vārda Aktīvā darbgrāmata lietošanas.
  • ThisWorkbook: ThisWorkbook nevar noiet greizi, jo nav svarīgi, kura darbgrāmata ir aktīva, tā vienmēr ņem atsauci uz darbgrāmatu, kur mēs rakstām kodu.

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