Objektom vyžadovaná chyba v programe Excel VBA - Riešenie problémov

Prehľad chýb vyžadovaných objektom

Tento tutoriál vám pomôže pri odstraňovaní chýb vyžadovaných objektom vo VBA.

<

<

Prehľad objektov

Vo VBA je objekt „vec“ ako pracovný list, zošit, rozsah, tvar, riadok, stĺpček, užívateľský formulár, ovládací prvok atď.

Objekty majú vlastnosti (exs: názov, farba, skryté) a metódy (exs: otvorené, vymazať, uložiť, skryť). Ak sa pokúsite použiť vlastnosť alebo metódu, VBA potrebuje platný objekt, na ktorý by mohol vlastnosti alebo metódy použiť.

Ak neposkytnete platný Objekt, dostanete Objektom vyžadovaná chyba.

Táto príručka vám pomôže pri odstraňovaní chýb vyžadovaných objektom.

#1. Voľba Explicitné / Nesprávne napísané názvy premenných

Najprv skontrolujte, či ste nesprávne zadali názov objektu. Nesprávne napísaný názov môže spôsobiť chybu vyžadovanú objektom.

To sa môže stať s existujúcimi názvami objektov:

<>

Alebo s názvami premenných:

<>

Jeden dobrý spôsob, ako zabrániť chybne napísaným menám premenných, je zaistiť deklaráciu Option Explicit v hornej časti modulu kódu.

1 Možnosť explicitná

Možnosť Explicitná vás núti deklarovať premenné. Teraz, keď ladíte <> svoj kód, dostanete správu, že musíte definovať svoju premennú:

<>

To by vám malo pomôcť zistiť, či je v premennej nesprávne napísaná.

Programovanie VBA | Generátor kódu pracuje za vás!

#2 Variabilné priradenia

Ďalej sa uistite, že ste premenné priradili správne.

Objektové premenné je potrebné priradiť pomocou Set Object =: <>

<>

Ak nepoužívate Set na priradenie premenných objektov, zobrazí sa chyba Object Required.

<>

Podobne by mali byť bez sady priradené aj neobjektové premenné:

<>

Ak sa pokúsite použiť Set na neobjektovej premennej, zobrazí sa chyba Object Required.

<>

#3 Moduly na úrovni pracovného hárka

Je váš kód v module na úrovni pracovného hárka? Ak je to tak, budete musieť byť obzvlášť opatrní pri odkazovaní na pomenované rozsahy v iných pracovných listoch.

Môžete mať napríklad zošit s názvom rozsah „Dátum“, v bežnom module kódu môžete na pomenovaný rozsah odkazovať takto:

1 Hodnota rozsahu MsgBox („dátum“)

Ak však odkazujete na pomenovaný rozsah v rámci modulu na úrovni pracovného hárka, musíte explicitne definovať pracovný hárok, kde sa nachádza pomenovaný rozsah:

1 Tabuľky MsgBox („List2“). Hodnota („Dátum“). Hodnota

V opačnom prípade sa zobrazí chyba:

<>

wave wave wave wave wave