: Notendaskilgreind tegund ekki skilgreind í Excel VBA (2 fljótlegar lausnir)

  • Deildu Þessu
Hugh West

Ein algengasta villan sem við stöndum frammi fyrir þegar unnið er með VBA í Excel er að notendaskilgreind gerð er ekki skilgreind. Í þessari grein mun ég sýna þér hvers vegna þessi villa stafar af og hvernig á að leysa þessa villu.

Hlaða niður æfingarvinnubók

Hlaða niður þessari æfingu til að æfa á meðan þú eru að lesa þessa grein.

User-Defined Type Not Defined.xlsm

2 orsakir og lausnir við User Defined Tegund ekki skilgreind í Excel VBA

Það eru 2 stór vandamál á bak við þessa algengu villu í Excel VBA . Við skulum kanna þau í smáatriðum og finna leiðir til að leysa þau.

1. Stafsetningarvilla við að lýsa yfir breytum

Þetta er aðalástæðan á bak við þessa villu. Oftast stafar villan „User-Defined Type not Defined“ vegna stafsetningarvillu þegar verið er að lýsa breytum.

Skoðaðu eftirfarandi línur af kóða.

1761

Ef þú keyrir þennan kóða færðu villukassa sem lætur þig vita um tilvist villunnar “User-Defined Type Not Defined”. Ásamt því finnurðu aðra línu kóðans auðkennd með bláu, þar sem ég skrifaði “strng” í stað “streng” .

Ég vona að þú skiljir pointið. VBA gat ekki þekkt breytutegundina “strng” , þess vegna leit hún á hana sem nýja breytutegund og hélt að þú hefðir skilgreint hana einhvers staðar. En þegar þaðfann að þú hefur ekki lýst því yfir neins staðar, það vakti villu.

Þess vegna, á meðan þú keyrir einfalda VBA kóða, ef þú lendir í þessari villu hvort sem er, athugaðu fyrst allar stafsetningar breytutegundanna þinna.

2. Skortur á réttri tilvísun

Þetta er önnur orsök á bak við þessa villu. Það er skortur á réttri tilvísun. Stundum notum við suma hluti í kóðanum okkar sem þarfnast réttrar tilvísunar úr Visual Basic Reference kassanum . Annars þekkir VBA ekki hlutinn.

Skoðaðu eftirfarandi VBA kóða.

2989

Keyra þennan kóða. Þú munt fá sömu gömlu villuna „Notandaskilgreind tegund ekki skilgreind“, að auðkenna Orðabókarhlutinn . Þetta er vegna þess að VBA gat ekki þekkt Orðabókarhlutinn og taldi hann vera notendaskilgreinda breytu, sem hefur ekki verið skilgreind fyrir mistök.

Nú er stærsta spurningin, hvernig á að leysa þessa villu? Auðvelt. Það eru 2 leiðir til að leysa þessa villu.

⧪ Lausn 1: Athugaðu forkröfutilvísunina úr tilvísunarboxinu í Visual Box

Þetta er snjöllustu leiðin til að leysa þetta vandamál. Farðu í Tól > Tilvísanir hnappinn í Visual Basic borðinu. Smelltu á References .

Valur sem heitir References opnast. Skrunaðu og finndu Microsoft Scripting Runtime (Þetta fer eftir hlutnum sem þú ert að nota. Orðabókinhlutur þarf að þekkja Microsoft Scripting Runtime . Svo, meðan þú notar hlut í VBA kóða, verður þú að vita forsendur hans til að vera viðurkenndur af VBA. Farðu á þennan hlekk til að fá frekari upplýsingar.). Athugaðu það.

Komdu nú aftur og keyrðu kóðann. Þú færð engar villur. Vegna þess að VBA getur þekkt Orðabókarhlutinn að þessu sinni.

⧪ Lausn 2: Að lýsa því yfir sem hreinum hlut frekar en sérstökum hlut

Það er önnur leið til að leysa þetta vandamál. Þú getur lýst hlutnum sem hreinum hlut, frekar en Orðabókarhlut .

Taktu eftir eftirfarandi kóðalínum.

5878

Hér hef ég lýst breytunni MyDictionary sem einfaldan hlut, ekki Orðabók. Nú ef þú keyrir þennan kóða færðu enga villu.

Hugh West er mjög reyndur Excel þjálfari og sérfræðingur með yfir 10 ára reynslu í greininni. Hann er með BA gráðu í bókhaldi og fjármálum og meistaragráðu í viðskiptafræði. Hugh hefur ástríðu fyrir kennslu og hefur þróað einstaka kennsluaðferð sem auðvelt er að fylgja eftir og skilja. Sérfræðiþekking hans á Excel hefur hjálpað þúsundum nemenda og fagfólks um allan heim að bæta færni sína og skara fram úr í starfi. Í gegnum bloggið sitt deilir Hugh þekkingu sinni með heiminum og býður upp á ókeypis Excel námskeið og netþjálfun til að hjálpa einstaklingum og fyrirtækjum að ná fullum möguleikum.