Šis vadovas supažindins jus su darbu su Darbaknygės objektas VBA.
Darbo knygos objektas
Pirma, norėdami bendrauti su darbo knygomis VBA, turite suprasti Darbo knygos objektas.
Naudodami darbaknygės objektą, galite nurodyti darbo knygas pagal jų pavadinimą:
1 | Darbaknygės („Book2.xlsm“). Aktyvinti |
Tačiau šis kodas veiks tik tada, kai darbo knyga yra atidaryta. Jei darbo knyga uždaryta, turėsite pateikti visą darbaknygės kelią:
1 | Darbaknygės.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Užuot įrašę visą kelią, jei norima darbaknygė yra tame pačiame kataloge kaip ir darbaknygė, kurioje saugomas jūsų kodas, galite naudoti šį eilutės kodą, kad atidarytumėte darbaknygę:
1 | Darbaknygės. Atviras (ThisWorkbook.Path & "\ book2.xlsm") |
Taip naudojamas „ThisWorkbook“ objektas, kurį aptarsime kitame skyriuje.
Darbaknygės rodyklės numeris
Galiausiai galite nurodyti darbo knygas pagal jų „indekso numerį“. Darbaknygės rodyklės numeris atitinka darbo knygos atidarymo tvarką (techniškai tai yra darbaknygės vieta darbaknygių kolekcijoje).
1 | Darbo knygos (1). Aktyvinti |
Tai naudinga, jei norite kažką panašaus uždaryti pirmą (arba paskutinę) atidarytą darbaknygę.
Suaktyvinkite darbaknygę, „ActiveWorkbook“ ir „ThisWorkbook“
Jei darbo knyga yra NEAKTYVUS, galite pasiekti tokius darbaknygės objektus:
1 | Darbaknygės („Book2.xlsm“). Skaičiuoklės („Sheet1“). Diapazonas („A1“). Vertė = 1 |
Tačiau jei darbaknygė yra aktyvi, galite praleisti darbaknygės objektą:
1 | Skaičiuoklės („Sheet1“). Diapazonas („A1“). Vertė = 1 |
Ir jei norite bendrauti su aktyviu darbaknygės lapu, taip pat galite atšaukti lapų objektą:
1 | Diapazonas („A1“). Vertė = 1 |
Suaktyvinti darbaknygę
Norėdami suaktyvinti darbaknygę, naudokite Aktyvinti metodą.
1 | Darbaknygės („Book2.xlsm“). Aktyvinti |
Dabar galite bendrauti su „Book2“ objektu, aiškiai nenurodydami darbaknygės pavadinimo.
„ActiveWorkbook“
The „ActiveWorkbook“ objektas visada nurodo aktyvią darbaknygę. Tai naudinga, jei norite priskirti „ActiveWorkbook“ kintamajam, kad galėtumėte jį naudoti vėliau.
12 | Dim wb Kaip darbo knygaNustatykite wb = ActiveWorkbook |
Ši darbo knyga
The Ši darbo knyga objektas visada nurodo darbaknygę, kurioje saugomas veikimo kodas. Norėdami įjungti „ThisWorkbook“, naudokite šią kodo eilutę:
1 | Ši darbo knyga. Aktyvinti |
Atidarykite darbaknygę
Norėdami atidaryti darbaknygę, naudokite Atviras metodas:
1 | Darbaknygės.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Naujai atidaryta darbo knyga visada taps „ActiveWorkbook“, leidžianti lengvai su juo bendrauti.
1 | ActiveWorkbook.Save |
Atviras metodas turi keletą kitų argumentų, leidžiančių atidaryti tik skaityti, atidaryti slaptažodžiu apsaugotą darbaknygę ir dar daugiau. Tai aprašyta mūsų straipsnyje apie darbo knygų atidarymą / uždarymą.
Atidaryti ir priskirti kintamajam
Taip pat galite atidaryti darbaknygę ir priskirti ją kintamajam tuo pačiu metu:
12 | Dim wb Kaip darbo knygaNustatykite wb = Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Atidarykite failų dialogą
Taip pat galite suaktyvinti dialogo langą Atidaryti failą taip:
12345678 | Antrinė „OpenWorkbook“ ()Dim strFile As StringstrFile = Application.GetOpenFilename ()Darbaknygės. Atidaryti (strFile)Pabaiga Sub |
Sukurti naują (pridėti) darbaknygę
Ši kodo eilutė sukurs naują darbaknygę:
1 | Darbaknygės. Pridėti |
Nauja darbo knyga dabar tampa „ActiveWorkbook“, leidžiantis su ja bendrauti (pvz., išsaugoti naują darbaknygę).
Pridėti naują darbaknygę prie kintamojo
Naują darbaknygę taip pat galite pridėti tiesiogiai prie kintamojo:
12 | Dim wb Kaip darbo knygaNustatykite wb = Darbaknygės. Pridėti |
Uždaryti darbaknygę
Uždaryti ir išsaugoti
Norėdami uždaryti darbaknygę išsaugodami, naudokite Uždaryti metodas su Išsaugoti pakeitimus nustatyta į TRUE:
1 | ActiveWorkbook. Uždaryti SaveChanges: = Tiesa |
Uždaryti be išsaugojimo
Norėdami uždaryti neišsaugodami, nustatykite Išsaugoti pakeitimus lygus FALSE:
1 | ActiveWorkbook.Clos SaveChanges: = Netiesa |
Darbo knyga Išsaugoti kaip
The „SaveAs“ metodas yra naudojama darbo knygai išsaugoti kaip.
Norėdami išsaugoti darbaknygę nauju pavadinimu tame pačiame kataloge, galite tai padaryti:
1 | ActiveWorkbook.SaveAs "naujas" |
kur „naujas“ yra naujas failo pavadinimas.
Norėdami išsaugoti darbaknygę naujame kataloge su konkrečiu failo plėtiniu, tiesiog nurodykite naują katalogą ir failo pavadinimą:
1 | ActiveWorkbook.SaveAs "C: \ Users \ StevePC2 \ Downloads \ new.xlsm" |
Kiti darbaknygės VBA pavyzdžiai
Darbaknygės pavadinimas
Norėdami sužinoti darbo knygos pavadinimą:
1 | „MsgBox ActiveWorkbook“. Pavadinimas |
Apsaugoti darbo knygą
Norėdami apsaugoti darbaknygės struktūrą nuo redagavimo, galite naudoti Apsaugos metodas (slaptažodis neprivalomas):
1 | Darbaknygės („book1.xlsm“). Apsaugokite „slaptažodį“ |
Norėdami panaikinti darbo knygos apsaugą, naudokite Neapsaugotas metodas:
1 | Darbaknygės („book1.xlsm“). Atšaukite „slaptažodžio“ apsaugą |
Peržiūrėkite visas atviras darbo knygas
Norėdami peržiūrėti visas atidarytas darbaknyges:
123456789 | „Sub LoopThroughWBs“ ()Dim wb Kaip darbo knygaUž kiekvieną wb darbaknygėse„MsgBox wb.Pavadinimas“Kitas wbPabaiga Sub |
Darbo knygos suaktyvinimo įvykis
Galite paleisti tam tikrą kodą, kai tik atidaroma konkreti darbaknygė su Atviras darbo knygos įvykis.
Įdėkite šią procedūrą į savo darbaknygės „ThisWorkbook“ modulį:
123 | Privati antrinė darbo knyga_Atidaryti ()Skaičiuoklės („sheet1“). AktyvintiPabaiga Sub |
Ši procedūra bus suaktyvinta 1 lapas kiekvieną kartą atidarius darbaknygę.