: Uporabniško določena vrsta, ki ni opredeljena v programu Excel VBA (2 hitri rešitvi)

  • Deliti To
Hugh West

Ena najpogostejših napak, s katerimi se srečujemo pri delu z VBA v Excelu je, da uporabniško opredeljena vrsta ni opredeljena. V tem članku vam bom pokazal, zakaj pride do te napake in kako jo odpraviti.

Prenesi delovni zvezek za prakso

Prenesite ta delovni zvezek za vadbo, ki ga lahko uporabljate med branjem tega članka.

Uporabniško opredeljena vrsta ni opredeljena.xlsm

2 Vzroki in rešitve za Uporabniško določena vrsta ni opredeljena v programu Excel VBA

Obstajajo 2 glavne težave, ki stojijo za to pogosto napako v programu Excel VBA . Podrobno jih raziščimo in poiščimo načine, kako jih rešiti.

1. Pravopisna napaka pri deklariranju spremenljivk

To je glavni razlog za to napako. Večinoma je napaka "Uporabniško opredeljena vrsta ni opredeljena" je posledica pravopisne napake pri deklariranju spremenljivk.

Oglejte si naslednje vrstice kode.

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

Če zaženete to kodo, se prikaže okence za napako, ki vas obvešča o napaki. "Uporabniško opredeljena vrsta ni opredeljena". Poleg nje boste našli drugo vrstico kode, ki je označena z modro, kjer sem napisal "strng" namesto "string" .

Upam, da ste razumeli bistvo. VBA ni mogel prepoznati tipa spremenljivke "strng" zato jo je obravnaval kot novo vrsto spremenljivke in mislil, da ste jo nekje definirali. Ko pa je ugotovil, da je niste nikjer deklarirali, je sprožil napako.

Zato med izvajanjem preprostih VBA kode, če vseeno naletite na to napako, najprej preverite črkovanje vseh vrst spremenljivk.

2. Pomanjkanje ustreznega sklicevanja

To je še en vzrok za to napako. To je pomanjkanje ustreznega sklicevanja. Včasih v naših kodah uporabljamo nekatere predmete, ki potrebujejo ustrezno sklicevanje iz Referenčno polje Visual Basic ... Sicer pa, VBA ne prepozna predmeta.

Oglejte si naslednje VBA koda.

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

Zaženite to kodo. Dobili boste enako staro napako "Uporabniško opredeljena vrsta ni opredeljena", poudarjanje Predmet slovarja . To je zato, ker VBA ni mogel prepoznati Predmet slovarja in jo obravnaval kot uporabniško določeno spremenljivko, ki ni bila napačno opredeljena.

Največje vprašanje je, kako odpraviti to napako? Enostavno. 2 načinov za odpravo te napake.

⧪ Rešitev 1: Preverjanje referenčnega pogoja iz referenčnega polja vizualnega okna

To je najpametnejši način za rešitev te težave. Orodja> Reference gumb v Visual Basic trak. Kliknite na Reference .

Pogovorno okno z imenom Reference se bo odprl. Pomaknite se in poiščite Microsoftovo okolje za izvajanje skriptov (To je odvisno od predmeta, ki ga uporabljate. Predmet slovarja potrebuje Microsoftovo okolje za izvajanje skriptov tako, da se prepozna. Torej, ko uporabljate predmet v VBA kodo, morate poznati njen predpogoj, da jo prepozna VBA. Za več informacij obiščite to povezavo.).

Zdaj se vrnite in zaženite kodo. Ne boste dobili nobenih napak. ker VBA lahko prepozna Predmet slovarja tokrat.

⧪ Rešitev 2: Deklaracija kot čistega objekta in ne kot posebnega objekta

To težavo lahko rešite še na drug način: objekt lahko deklarirate kot čisti objekt in ne kot Predmet slovarja .

Oglejte si naslednje vrstice kode.

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

Tukaj sem deklariral spremenljivko MyDictionary kot preprost predmet in ne kot Slovar. Če zdaj zaženete to kodo, ne boste dobili nobene napake.

Hugh West je zelo izkušen trener Excela in analitik z več kot 10-letnimi izkušnjami v industriji. Po izobrazbi je diplomirani računovodstvo in finance ter magisterij poslovne administracije. Hugh ima strast do poučevanja in je razvil edinstven pristop k poučevanju, ki ga je enostavno slediti in razumeti. Njegovo strokovno znanje o Excelu je pomagalo na tisoče študentom in strokovnjakom po vsem svetu, da so izboljšali svoje sposobnosti in se izkazali v karieri. Prek svojega bloga Hugh deli svoje znanje s svetom, ponuja brezplačne vadnice za Excel in spletno usposabljanje, ki posameznikom in podjetjem pomaga doseči njihov polni potencial.