: Typ definovaný používateľom nie je definovaný v programe Excel VBA (2 rýchle riešenia)

  • Zdieľajte To
Hugh West

Jednou z najčastejších chýb, s ktorými sa stretávame pri práci s VBA v programe Excel je, že nie je definovaný typ definovaný používateľom. V tomto článku vám ukážem, prečo táto chyba vzniká a ako ju vyriešiť.

Stiahnite si cvičebnicu

Stiahnite si tento cvičebný zošit, aby ste si počas čítania tohto článku precvičili svoje zručnosti.

Typ definovaný používateľom Nie je definovaný.xlsm

2 Príčiny a riešenia Typ definovaný používateľom nie je definovaný v programe Excel VBA

Existujú 2 hlavné problémy tejto často sa vyskytujúcej chyby v programe Excel VBA . Poďme ich podrobne preskúmať a zistiť spôsoby ich riešenia.

1. Pravopisná chyba pri deklarovaní premenných

Toto je hlavný dôvod tejto chyby. Väčšinou sa chyba "Typ definovaný používateľom nie je definovaný" je spôsobená pravopisnou chybou pri deklarovaní premenných.

Pozrite sa na nasledujúce riadky kódov.

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

Ak spustíte tento kód, zobrazí sa chybové okno s upozornením na prítomnosť chyby "Typ definovaný používateľom nie je definovaný". Spolu s ním nájdete druhý riadok kódu zvýraznený modrou farbou, kde som napísal "strng" namiesto "reťazec" .

Dúfam, že ste pochopili, o čo ide. VBA nedokázal rozpoznať typ premennej "strng" , preto ju považoval za nový typ premennej a myslel si, že ste ju niekde definovali. Keď však zistil, že ste ju nikde nedeklarovali, vyhlásil chybu.

Preto pri spúšťaní jednoduchých VBA kódy, ak sa aj tak stretnete s touto chybou, najprv skontrolujte všetky pravopisné znaky typov premenných.

2. Nedostatok správneho odkazovania

Toto je ďalšia príčina tejto chyby. Je ňou nedostatočné odkazovanie. Niekedy v našich kódoch používame niektoré objekty, ktoré potrebujú správne odkazovanie z Referenčné okno jazyka Visual Basic ... Inak, VBA nerozpozná objekt.

Pozrite sa na tieto informácie VBA kód.

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

Spustite tento kód. Zobrazí sa rovnaká stará chyba "Typ definovaný používateľom nie je definovaný", zvýraznenie Slovníkový objekt Je to preto. VBA nemohol rozpoznať Slovníkový objekt a považoval ju za premennú definovanú používateľom, ktorá nebola definovaná chybne.

Najväčšou otázkou je, ako túto chybu vyriešiť? Jednoducho. 2 spôsoby riešenia tejto chyby.

⧪ Riešenie 1: Kontrola odkazu na predpoklad z referenčného poľa vizuálneho okna

Toto je najrozumnejší spôsob riešenia tohto problému. Nástroje> Referencie tlačidlo v Visual Basic stuha. Kliknite na Odkazy .

Dialógové okno s názvom Odkazy otvorí sa. Prejdite a nájdite Spustenie skriptov Microsoft (Závisí to od objektu, ktorý používate. Slovníkový objekt potrebuje Spustenie skriptov Microsoft Takže pri používaní objektu v VBA kód, musíte poznať jeho predpoklad, aby ho rozpoznal VBA. Viac informácií nájdete na tomto odkaze.).

Teraz sa vráťte a spustite kód. Nebudete dostávať žiadne chyby. pretože VBA dokáže rozpoznať Slovníkový objekt tentoraz.

⧪ Riešenie 2: Deklarovanie ako čistého objektu namiesto špecifického objektu

Tento problém sa dá vyriešiť aj inak: objekt môžete deklarovať ako čistý objekt, a nie ako Slovníkový objekt .

Všimnite si nasledujúce riadky kódov.

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

Tu som deklaroval premennú MyDictionary ako jednoduchý objekt, nie ako Slovník. Ak teraz spustíte tento kód, nezobrazí sa žiadna chyba.

Hugh West je veľmi skúsený tréner a analytik Excelu s viac ako 10-ročnými skúsenosťami v tomto odvetví. Má bakalársky titul v odbore účtovníctvo a financie a magisterský titul v odbore Business Administration. Hugh má vášeň pre vyučovanie a vyvinul jedinečný vyučovací prístup, ktorý sa dá ľahko sledovať a pochopiť. Jeho odborné znalosti Excelu pomohli tisíckam študentov a profesionálov na celom svete zlepšiť svoje zručnosti a vyniknúť vo svojej kariére. Hugh sa prostredníctvom svojho blogu delí o svoje znalosti so svetom a ponúka bezplatné výukové programy Excelu a online školenia, ktoré jednotlivcom a firmám pomôžu naplno využiť ich potenciál.