VBA-koodis olevale objektile viitamine on oluline, kuna peate tuvastama objekti, millega soovite Excel 2016-s töötada. Lõppude lõpuks ei saa VBA teie mõtteid veel lugeda. Kuuldavasti tutvustatakse mõtete lugemise objekti Excel 2019-s.
Saate ühe hoobiga töötada terve objektikoguga. Sagedamini tuleb aga töötada mingi kindla objektiga kogus (näiteks töövihiku konkreetse töölehega). Kollektsiooni ühele objektile viitamiseks pange objekti nimi või indeksi number kogu nime järele sulgudesse, näiteks järgmiselt:
Töölehed (“Leht1”)
Pange tähele, et lehe nimi on jutumärkides. Kui jätate jutumärgid vahele, ei suuda Excel objekti tuvastada (ja eeldab, et see on muutuja nimi).
Kui Sheet1 on kogu esimene (või ainus) tööleht, saate kasutada ka järgmist viidet.
Töölehed (1)
Sel juhul ei ole number jutumärkides. Alumine joon? Kui viitate objektile selle nime kasutades, kasutage jutumärke. Kui viitate objektile selle indeksinumbri abil, kasutage tavalist numbrit ilma jutumärkideta.
Aga diagrammilehed? Diagrammileht sisaldab ühte diagrammi. Sellel on lehe vahekaart, kuid see pole tööleht. Noh, nagu selgub, on objektimudelil kollektsioon nimega Charts. See kogu sisaldab kõiki töövihiku diagrammilehtede objekte (ja ei sisalda töölehel manustatud diagramme).
Ja asja loogiliseks hoidmiseks on veel üks kogu nimega Sheets. Kogu Sheets sisaldab kõiki töövihiku lehti (töölehti ja diagrammilehti). Kogu Arvutustabelid on mugav, kui soovite töötada kõigi töövihiku lehtedega ega hooli, kas need on töölehed või diagrammilehed.
Seega on üks tööleht nimega Sheet1 kahe kogu liige: töölehtede kogu ja kogu Arvutustabelid. Saate sellele viidata kahel viisil:
Töölehed (“Leht1”)
Arvutid ("Leht1")
Hierarhias navigeerimine
Kui soovite töötada Exceli objektidega, on need kõik rakenduse objekti all. Nii et alustuseks tippige Rakendus .
Kõik teised Exceli objektimudeli objektid asuvad rakenduse objekti all. Nende objektide juurde pääsete, liikudes hierarhias allapoole ja ühendades iga teel oleva objekti punkti (.) operaatoriga. Töövihiku objektile Book1.xlsx jõudmiseks alustage objektist Rakendus ja navigeerige alla kogu objektini Töövihikud:
Application.Workbooks ("Raamat1.xlsx")
Konkreetsele töölehel kaugemale liikumiseks lisage punktioperaator ja avage töölehtede koguobjekt:
Rakendus. Töövihikud (“Raamat1.xlsx”). Töölehed (1)
Pole veel piisavalt kaugel? Kui soovite tõesti saada väärtust töövihiku esimesel töölehel Book1.xlsx lahtrist A1, peate navigeerima veel ühe taseme objektile Vahemik:
Rakendus. Töövihikud (“Raamat1.xlsx”). Töölehed (1). Vahemik (“A1”). Väärtus
Kui viite vahemiku objektile sel viisil, nimetatakse seda täielikult määratletud viiteks. Olete Excelile täpselt öelnud, millist vahemikku soovite, millisel töölehel ja millises töövihikus, ega jätnud midagi kujutlusvõime hooleks. Kujutlusvõime on inimestel hea, kuid arvutiprogrammides mitte nii hea.
Muide, töövihikute nimedel on ka punkt, mis eraldab failinime laiendist (näiteks Book1.xlsx). See on lihtsalt juhus. Punktil failinimes pole punktioperaatoriga mingit pistmist.
Objektiviidete lihtsustamine
Kui teilt nõutaks iga tehtud objektiviite täielikku kvalifitseerimist, läheks teie kood üsna pikaks ja seda võib olla raskem lugeda. Õnneks pakub Excel teile mõningaid otseteid, mis parandavad loetavust (ja säästavad trükkimist). Alustuseks eeldatakse alati objekti Rakendus. On vaid üksikud juhud, mil on mõttekas see tippida. Rakenduse objekti viite väljajätmine lühendab näidet järgmiseks
Töövihikud (“Raamat1.xlsx”). Töölehed (1). Vahemik (“A1”). Väärtus
See on päris hea edasiminek. Aga oota, seal on veel. Kui olete kindel, et Book1.xlsx on aktiivne töövihik, võite ka selle viite ära jätta. Nüüd on sul asi
Töölehed(1).Range(“A1”).Väärtus
Nüüd jõuate kuhugi. Kas olete järgmist otseteed ära arvanud? See on õige. Kui teate, et esimene tööleht on praegu aktiivne tööleht, eeldab Excel seda viidet ja võimaldab teil lihtsalt tippida
Vahemik (“A1”). Väärtus
Vastupidiselt sellele, mida mõned inimesed arvavad, pole Excelil lahtriobjekti. Raku on lihtsalt Range objekti, mis koosneb ainult ühe elemendi.
Siin kirjeldatud otseteed on suurepärased, kuid võivad olla ka ohtlikud. Mis siis, kui arvate, et Book1.xlsx on aktiivne töövihik? Võite saada veateate või, mis veelgi hullem, saada vale väärtuse ega saa isegi aru, et see on vale. Sel põhjusel on sageli kõige parem oma objektiviited täielikult kvalifitseerida.
Struktuur With-End With aitab teil viiteid täielikult kvalifitseerida, kuid aitab muuta koodi loetavamaks ja vähendab tippimist. Mõlema maailma parim!