Obsah:
Video: QGIS - Nastavení přichytávání a zpracování provedených změn 2024
Odkaz na objekt ve vašem kódu VBA je důležitý, protože musíte identifikovat objekt s kterou chcete pracovat v aplikaci Excel 2016. Koneckonců, VBA nemůže přečíst vaši mysl - dosud. Říká se, že objekt čtení v myslí bude představen v aplikaci Excel 2019.
Můžete pracovat s celou kolekcí objektů v jednom úpadku. Čím častěji však potřebujete pracovat s určitým objektem v kolekci (jako je například konkrétní list v sešitu). Chcete-li odkazovat na jeden objekt ze sbírky, za název kolekce vložte název nebo číslo objektu v závorce, například:
Worksheets ("Sheet1")
Všimněte si, že název listu je v uvozovkách. Pokud vynecháte uvozovky, aplikace Excel nebude schopna identifikovat objekt (a bude předpokládat, že je to jméno proměnné).
Pokud Sheet1 je první (nebo pouze) list v kolekci, můžete použít také následující odkaz:
Worksheets (1)
V tomto případě je číslo ne uvozovky. Spodní linie? Pokud odkazujete na objekt pomocí jeho jména, použijte uvozovky. Pokud odkazujete na objekt pomocí jeho indexového čísla, použijte jednoduché číslo bez uvozovek.
Co grafy? List grafu obsahuje jeden graf. Má list kartu, ale není to list. Jak se ukázalo, objektový model má sbírku nazvanou Grafy. Tato sada obsahuje všechny objekty grafu v sešitu (a nezahrnuje grafy vložené do listu).
A jen proto, aby to bylo logické, existuje další sbírka nazvaná Listy. V kolekci Sheets obsahuje všechny listy (listy a grafy) v sešitu. Kolekce listů je užitečná, pokud chcete pracovat se všemi listy v sešitu a je jedno, zda se jedná o pracovní listy nebo tabulky grafů.
Takže jeden list s názvem Sheet1 je členem dvou sbírek: kolekce Worksheets a kolekce Sheets. Můžete se k němu obrátit dvěma způsoby:
Listy (Sheet1) Listy ("Sheet1")
Navigace v hierarchii
Chcete-li pracovat s objekty aplikace Excel, Objekt aplikace. Takže začněte zadáním Aplikace .
Každý objekt v modelu objektu aplikace Excel je pod objektem aplikace. Dostanete se k těmto objektům tím, že se přesunete dolů do hierarchie a propojíte každý objekt cestou s bodovým (.) Operátorem. Chcete-li se dostat do objektu sešitu nazvaného Book1. xlsx, spusťte objekt Application a přejděte dolů do kolekčního objektu Workbooks:
Application.Sešity ("Book1.xlsx")
Chcete-li navigovat dále k určitému listu, přidejte bodový operátor a otevřete objekt kolekce pracovních listů:
Aplikace. Sešity ("Book1. Xlsx"). Pracovní listy (1)
Dosud ještě nedostatečné? Pokud skutečně chcete získat hodnotu z buňky A1 v prvním listu sešitu nazvaném Book1. xlsx, musíte projít další úroveň na objekt Range:
Application. Sešity ("Book1. Xlsx"). Pracovní listy (1). Rozsah ("A1"). Hodnota
Když se takto objeví objekt Range, nazývá se to plně kvalifikovanou referencí. Řekli jste programu Excel přesně, jaký rozsah chcete, na kterém pracovním listu a ve kterém sešitu, a nezbylo nic imaginace. Představivost je pro lidi dobrá, ale v počítačových programech není tak dobrá.
Mimochodem, názvy sešitu mají také bod k oddělení názvu souboru od rozšíření (například Book1.xlsx). To je jen náhoda. Bodka v názvu souboru nemá nic společného s operátorem dot.
Zjednodušení odkazů na objekty
Pokud byste museli plně kvalifikovat každý odkaz na objekt, který jste vytvořili, váš kód by byl dost dlouho a mohlo by být obtížnější číst. Naštěstí vám aplikace Excel poskytuje některé zkratky, které mohou zlepšit čitelnost (a ušetřit vám nějaké psaní). Pro začátek je objekt aplikace vždy předpokládán. Existuje jen málo případů, kdy má smysl psát. Vynechání odkazu na objekt Application zkracuje příklad na
Workbooks ("Book1. Xlsx"). Pracovní listy (1). Rozsah ("A1"). Hodnota
To je docela dobré zlepšení. Ale počkej, je toho víc. Pokud jste si jisti, že kniha1. xlsx je aktivní sešit, můžete také vynechat tento odkaz. Nyní jste na
pracovních listů (1). Rozsah ("A1"). Hodnota
Nyní se dostanete někde. Už jste uhodli další zkratku? To je správně. Pokud víte, že první list je aktuálně aktivní list, Excel předpokládá, že odkaz a umožňuje pouze zadat
Range ("A1"). Hodnota
Na rozdíl od toho, co si někteří lidé myslí, Excel nemá objekt Cell. je jednoduše objekt Range, který se skládá pouze z jednoho prvku.
Zde popsané zkratky jsou skvělé, ale mohou být také nebezpečné. Co když pouze myslíte Book1. xlsx je aktivní sešit? Mohla by se dostat chyba, nebo ještě horší, že byste mohli dostat nesprávnou hodnotu a ani si neuvědomit, že je to špatně. Z tohoto důvodu je často nejlepší, abyste plně kvalifikovali své reference.
Struktura s koncovkou "With-End" pomáhá plně kvalifikovat vaše reference, ale také pomáhá zvýšit čitelnost kódu a zkracuje psaní. Nejlepší z obou světů!