Š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 |