Svarbu nurodyti objektą VBA kode, nes turite nustatyti objektą, su kuriuo norite dirbti programoje „Excel 2016“. Galų gale, VBA dar negali skaityti jūsų minčių. Sklando gandai, kad minčių skaitymo objektas bus pristatytas „Excel 2019“.
Galite dirbti su visa objektų kolekcija vienu ypu. Tačiau dažniau reikia dirbti su konkrečiu kolekcijos objektu (pvz., konkrečiu darbaknygės darbalapiu). Norėdami nurodyti vieną objektą iš kolekcijos, skliausteliuose po kolekcijos pavadinimo įrašykite objekto pavadinimą arba indekso numerį, pavyzdžiui:
Darbalapiai („Sheet1“)
Atkreipkite dėmesį, kad lapo pavadinimas yra kabutėse. Jei praleisite kabutes, „Excel“ negalės identifikuoti objekto (ir manys, kad tai kintamojo pavadinimas).
Jei 1 lapas yra pirmasis (arba vienintelis) kolekcijos darbalapis, taip pat galite naudoti šią nuorodą:
Darbalapiai (1)
Šiuo atveju skaičius nėra kabutėse. Apatinė eilutė? Jei nurodote objektą naudodami jo pavadinimą, naudokite kabutes. Jei nurodote objektą naudodami jo indekso numerį, naudokite paprastą skaičių be kabučių.
O diagramos lapai? Diagramos lape yra viena diagrama. Jame yra lapo skirtukas, bet tai nėra darbalapis. Na, kaip paaiškėjo, objekto modelis turi kolekciją, pavadintą diagramos. Šioje kolekcijoje yra visi darbaknygės diagramos lapo objektai (ir neapima į darbalapį įterptų diagramų).
Ir kad viskas būtų logiška, yra dar viena kolekcija, pavadinta „Skaičiuoklės“. Kolekcijoje Skaičiai yra visi darbaknygės lapai (darbo lapai ir diagramų lapai). Kolekcija Skaičiuoklės yra patogi, jei norite dirbti su visais darbaknygės lapais ir nesvarbu, ar tai darbalapiai, ar diagramos lapai.
Taigi, vienas darbalapis, pavadintas Sheet1, yra dviejų kolekcijų: Darbalapių rinkinio ir Skaičiuoklių kolekcijos narys. Galite kreiptis į jį vienu iš dviejų būdų:
Darbalapiai („Sheet1“)
Lakštai („Sheet1“)
Naršymas hierarchijoje
Jei norite dirbti su „Excel“ objektais, jie visi yra taikomosios programos objekte. Taigi pradėkite įvesdami Application .
Kiekvienas kitas „Excel“ objekto modelio objektas yra programos objekte. Prie šių objektų pasieksite judėdami hierarchija žemyn ir sujungę kiekvieną savo kelyje esantį objektą taško (.) operatoriumi. Norėdami patekti į darbaknygės objektą, pavadintą Book1.xlsx, pradėkite nuo programos objekto ir eikite į darbaknygės rinkinio objektą:
Application.Workbooks („Knyga1.xlsx“)
Norėdami pereiti toliau į konkretų darbalapį, pridėkite taško operatorių ir pasiekite darbalapių rinkinio objektą:
Programa. Darbo knygos („Knyga1.xlsx“). Darbo lapai (1)
Dar ne pakankamai toli? Jei tikrai norite gauti reikšmę iš langelio A1 pirmajame darbaknygės darbalapyje pavadinimu Book1.xlsx, turite pereiti dar vieną lygį į objektą Range:
Taikymas. Darbo knygos („Knyga1.xlsx“). Darbo lapai (1). Diapazonas („A1“). Vertė
Kai tokiu būdu nurodote diapazono objektą, tai vadinama visiškai kvalifikuota nuoroda. „Excel“ tiksliai nurodėte, kokio diapazono norite, kuriame darbalapyje ir kurioje darbaknygėje, ir nieko nepalikote vaizduotei. Žmonių vaizduotė yra gera, bet ne tokia gera kompiuterinėse programose.
Beje, darbaknygės pavadinimuose taip pat yra taškas, atskiriantis failo pavadinimą nuo plėtinio (pavyzdžiui, Book1.xlsx). Tai tik sutapimas. Taškas failo pavadinime visiškai nesusijęs su taško operatoriumi.
Objektų nuorodų supaprastinimas
Jei jums būtų reikalaujama visiškai kvalifikuoti kiekvieną jūsų pateiktą objekto nuorodą, jūsų kodas būtų gana ilgas ir jį būtų sunkiau perskaityti. Laimei, „Excel“ pateikia keletą sparčiųjų klavišų, kurie gali pagerinti skaitomumą (ir sutaupyti teksto). Pradedantiesiems visada tariamas objektas Application. Yra tik keli atvejai, kai prasminga jį įvesti. Praleidus programos objekto nuorodą, pavyzdys sutrumpinamas iki
Darbaknygės („Knyga1.xlsx“). Darbo lapai (1). Diapazonas („A1“). Vertė
Tai gana geras patobulinimas. Bet palaukite, yra daugiau. Jei esate tikri, kad Book1.xlsx yra aktyvi darbaknygė, taip pat galite praleisti šią nuorodą. Dabar jūs nusileidote
Darbalapiai (1). Diapazonas ("A1"). Reikšmė
Dabar tu kur nors eini. Ar atspėjote kitą nuorodą? Teisingai. Jei žinote, kad pirmasis darbalapis yra šiuo metu aktyvus darbalapis, „Excel“ daro prielaidą, kad ši nuoroda ir leidžia tiesiog įvesti tekstą
Diapazonas („A1“). Reikšmė
Priešingai nei kai kurie žmonės galvoja, „Excel“ neturi langelio objekto. Ląstelių yra tiesiog klasės objektas, kurį sudaro tik vienas elementas.
Čia aprašyti spartieji klavišai yra puikūs, tačiau jie taip pat gali būti pavojingi. Ką daryti, jei manote, kad Book1.xlsx yra aktyvi darbaknygė? Galite gauti klaidą arba, dar blogiau, galite gauti neteisingą vertę ir net nesuvokti, kad tai neteisinga. Dėl šios priežasties dažnai geriausia visiškai kvalifikuoti savo objektų nuorodas.
Struktūra With-End With padeda visiškai kvalifikuoti nuorodas, bet taip pat padeda geriau skaityti kodą ir sutrumpina spausdinimą. Geriausias iš abiejų pasaulių!