Přehled chyb vyžadovaných objektem
Tento tutoriál vám pomůže při odstraňování chyb vyžadovaných objektem ve VBA.
<
<
Přehled objektů
Ve VBA je objekt „věc“ jako list, sešit, rozsah, tvar, řádek, sloupec, forma uživatele, ovládací prvek atd.
Objekty mají vlastnosti (exs: název, barva, skryté) a metody (exs: open, clear, save, hide). Pokud se pokusíte použít vlastnost nebo metodu, VBA potřebuje platný objekt, na který bude vlastnosti nebo metody aplikovat.
Pokud neposkytnete platný Objekt, obdržíte Objektem vyžadovaná chyba.
Tato příručka vám pomůže při odstraňování chyb vyžadovaných objektem.
#1. Volitelné explicitní / chybně napsané názvy proměnných
Nejprve zkontrolujte, zda jste nesprávně zadali název objektu. Chybně napsaný název může způsobit chybu vyžadovanou objektem.
To se může stát u stávajících názvů objektů:
<>
Nebo s názvy proměnných:
<>
Jedním z dobrých způsobů, jak zabránit chybně napsaným názvům proměnných, je zajistit deklaraci Option Explicit v horní části modulu kódu.
1 | Možnost Explicitní |
Volba Explicit vás nutí deklarovat proměnné. Nyní, když ladíte <> svůj kód, obdržíte zprávu, kterou potřebujete k definování proměnné:
<>
To by vám mělo pomoci zjistit, že proměnná obsahuje překlep.
Programování VBA | Generátor kódu pracuje pro vás!
#2 Variabilní přiřazení
Dále se ujistěte, že jste správně přiřadili proměnné.
Proměnné objektu je třeba přiřadit pomocí Set Object =: <>
< Pokud pro přiřazení proměnných objektů nepoužíváte Set, zobrazí se chyba Object Required. <> Podobně by bez sady měly být přiřazeny neproměnné proměnné: <> Pokud se pokusíte použít Set na neobjektové proměnné, zobrazí se chyba Object Required. <> Je váš kód v modulu na úrovni listu? Pokud ano, budete muset být obzvláště opatrní při odkazování na pojmenované rozsahy na jiných listech. Můžete mít například úroveň sešitu s názvem rozsah „Datum“, v modulu pravidelného kódu můžete na pojmenovaný rozsah odkazovat takto: Pokud však odkazujete na pojmenovaný rozsah z modulu na úrovni listu, musíte explicitně definovat list, kde se nachází pojmenovaný rozsah: Jinak narazíte na chybu: <>>
#3 Moduly na úrovni pracovního listu
1 Hodnota rozsahu MsgBox ("Datum")
1 Tabulky MsgBox („List2“). Rozsah („Datum“). Hodnota