: Typ definovaný uživatelem není definován v Excelu VBA (2 rychlá řešení)

  • Sdílet Toto
Hugh West

Jednou z nejčastějších chyb, se kterou se setkáváme při práci s VBA v Excelu je, že není definován uživatelsky definovaný typ. V tomto článku vám ukážu, proč k této chybě dochází a jak ji vyřešit.

Stáhnout cvičebnici

Stáhněte si tento cvičební sešit a procvičujte si při čtení tohoto článku.

Typ definovaný uživatelem není definován.xlsm

2 Příčiny a řešení Typ definovaný uživatelem není definován v aplikaci Excel VBA

Existují 2 hlavní problémy, které stojí za touto často se vyskytující chybou v aplikaci Excel. VBA . Pojďme je podrobně prozkoumat a zjistit způsoby jejich řešení.

1. Pravopisná chyba při deklaraci proměnných

To je hlavní příčina této chyby. Většinou se jedná o chybu. "Typ definovaný uživatelem není definován" je způsobena pravopisnou chybou při deklaraci proměnných.

Podívejte se na následující řádky kódů.

 Sub User_Defined_Type_not_Defined() Dim Name As Strng Name = "ExcelWIKI" MsgBox Name End Sub 

Pokud spustíte tento kód, zobrazí se chybové okno s upozorněním na výskyt chyby. "Typ definovaný uživatelem není definován". Spolu s ním najdete modře zvýrazněný druhý řádek kódu, kde jsem napsal. "strng" místo "string" .

Doufám, že jste to pochopili. VBA nemohl rozpoznat typ proměnné "strng" , proto ji považoval za nový typ proměnné a myslel si, že jste ji někde definovali. Když však zjistil, že jste ji nikde nedeklarovali, vyhodil chybu.

Proto při spuštění jednoduchých VBA kódů, pokud se s touto chybou přesto setkáte, zkontrolujte nejprve všechny pravopisné podoby typů proměnných.

2. Nedostatečné odkazování

To je další příčina této chyby. Tou je chybějící správné odkazování. Někdy v našich kódech používáme některé objekty, které potřebují správné odkazování z kódu Referenční rámeček jazyka Visual Basic ... Jinak, VBA nerozpozná objekt.

Podívejte se na následující VBA kód.

 Sub User_Defined_Type_not_Defined() Dim MyDictionary As Dictionary Set MyDictionary = CreateObject("Scripting.Dictionary") End Sub 

Spusťte tento kód. Zobrazí se stejná stará chyba. "Typ definovaný uživatelem není definován", zvýraznění Slovníkový objekt Je to proto, že VBA nemohl rozpoznat Slovníkový objekt , a považoval ji za uživatelsky definovanou proměnnou, která nebyla definována chybně.

Největší otázkou je, jak tuto chybu vyřešit? Snadno. 2 způsoby řešení této chyby.

⧪ Řešení 1: Kontrola odkazu na předpoklad z referenčního rámečku vizuálního rámečku

Toto je nejchytřejší způsob, jak tento problém vyřešit. Přejděte na stránku Nástroje> Reference tlačítko v Visual Basic stuha. Klikněte na Odkazy .

Dialogové okno s názvem Odkazy se otevře. Přejděte a najděte Spuštění skriptovacího prostředí Microsoft (To závisí na objektu, který používáte. Slovníkový objekt potřebuje Spuštění skriptovacího prostředí Microsoft aby byl rozpoznán. Takže při použití objektu v VBA kód, musíte znát jeho předpoklad, aby byl rozpoznán. VBA. Více informací najdete na tomto odkazu.). Podívejte se na něj.

Nyní se vraťte a spusťte kód. Neobjeví se žádné chyby. protože VBA dokáže rozpoznat Slovníkový objekt tentokrát.

⧪ Řešení 2: Deklarace jako čistý objekt, nikoli jako konkrétní objekt

Tento problém lze vyřešit i jinak: objekt můžete deklarovat jako čistý objekt, nikoli jako Slovníkový objekt .

Všimněte si následujících řádků kódů.

 Sub User_Defined_Type_not_Defined() Dim MyDictionary As Object Set MyDictionary = CreateObject("Scripting.Dictionary") End Sub 

Zde jsem deklaroval proměnnou MyDictionary jako jednoduchý objekt, nikoli jako Slovník. Pokud nyní spustíte tento kód, nezobrazí se žádná chyba.

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.