„VBA ActiveWorkbook“ prieš „ThisWorkbook“

Šioje pamokoje bus aptariamas skirtumas tarp „VBA ActiveWorkbook“ ir „ThisWorkbook“.

„ActiveWorkbook“ prieš „ThisWorkbook“

Svarbu žinoti skirtumą tarp „ActiveWorkbook“ ir „ThisWorkbook“ VBA:

„ActiveWorkbook“ yra šiuo metu aktyvi darbo knyga (panaši į tai, kaip „ActiveSheet“ yra šiuo metu aktyvus lapas). Ši darbo knyga yra darbaknygė, kurioje saugomas VBA kodas. Ši darbo knyga niekada nesikeis.

Ši darbo knyga

Pagalvokite apie „ThisWorkbook“ kaip apie objekto kintamąjį, kuris leidžia nurodyti darbo knygą, kurioje yra šiuo metu veikiantis kodas.

Šis kodas parodys „MessageBox“ su „ThisWorkbook“ pavadinimu:

123 Sub Show_ThisWorkbook ()„MsgBox ThisWorkbook.Name“Pabaiga Sub

„ActiveWorkbook“

„ActiveWorkbook“ yra objekto kintamasis, leidžiantis nurodyti šiuo metu aktyvią darbaknygę.

Šis kodas parodys „MessageBox“ su „ActiveWorkbook“ pavadinimu:

123 Sub Show_ActiveWorkbook ()„MsgBox ActiveWorkbook“. PavadinimasPabaiga Sub

VBA prisiima „ActiveWorkbook“

Kai bandote dirbti su objektais (pvz., Skaičiuoklėmis) „ActiveWorkbook“, jums nereikia aiškiai nurodyti „ActiveWorkbook“ objekto. VBA manys, kad turite omenyje „ActiveWorkbook“.

Taigi tai:

1 ActiveWorkbook.Sheets ("Sheet1"). Diapazonas ("$ A $ 5"). Vertė = 1

Ar tas pats kaip šis:

1 Skaičiuoklės („Sheet1“). Diapazonas („$ A $ 5“). Vertė = 1

Naujos arba atidarytos darbaknygės yra aktyvios

Kai sukuriate naują ar atidarote darbaknygę, darbaknygė tampa „Aktyvi“. Galite pamatyti patys naudodami šį kodą, kuris pridės darbaknygę ir nuskaitys naujos darbaknygės pavadinimą:

1234 Sub Show_ActiveWorkbook_Add ()Darbaknygės. Pridėti„MsgBox ActiveWorkbook“. PavadinimasPabaiga Sub

Pridėję arba atidarę darbaknygę, galite priskirti ją kintamajam naudodami „ActiveWorkbook“ objektą. Mes parodysime, kaip tai padaryti toliau pateiktuose pavyzdžiuose:

„ThisWorkbook“ ir „ActiveWorkbook“ pavyzdžiai

Perjunkite aktyvią darbaknygę

Perjunkite aktyvią darbaknygę naudodami darbaknygės pavadinimą:

1 Darbo knygos („1 knyga“). Aktyvinti

Perjunkite aktyvią darbaknygę naudodami darbalapio užsakymo numerį (1 yra pirmasis darbaknygės darbalapis)

1 Darbo knygos (1). Aktyvinti

Padarykite šią darbo knygą aktyvią

Padarykite „ThisWorkbook“ (kurioje saugomas šiuo metu veikiantis kodas) „ActiveWorkbook“:

1 Ši darbo knyga. Aktyvinti

Nustatykite „ActiveWorkbook“ į kintamąjį

Priskirkite „ActiveWorkbook“ darbaknygės objekto kintamajam:

12 Dim wb Kaip darbo knygaNustatykite wb = ActiveWorkbook

Uždarykite ir išsaugokite aktyvią darbaknygę

Uždaro ir išsaugo „ActiveWorkbook“:

1 ActiveWorkbook. Uždaryti SaveChanges: = Tiesa

Uždarykite aktyvią darbaknygę neišsaugodami

Uždaro „ActiveWorkbook“ neišsaugodami:

1 ActiveWorkbook.Clos SaveChanges: = Netiesa

„ActiveWorkbook“ - išsaugoti kaip

Atlieka aktyvios darbaknygės įrašymą kaip.

123456789 Sub SaveAsActiveWorkbook ()Neryškus rezultatas Kaip variantasrezultatas = Application.GetSaveAsFilename (InitialFileName: = "", _FileFilter: = "" Excel "makrokomandų darbaknygė ( *.xlsm), *.xlsm," Excel "darbaknygė ( *.xlsx), *.xlsx")Jei rezultatas = klaidinga, tada grįžkiteActiveWorkbook.SaveAs rezultatasPabaiga Sub

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave