: Az Excel VBA-ban nem definiált felhasználó által meghatározott típus (2 gyors megoldás)

  • Ossza Meg Ezt
Hugh West

Az egyik leggyakoribb hiba, amivel szembesülünk, amikor a VBA az Excelben az, hogy a felhasználó által definiált típus nincs definiálva. Ebben a cikkben megmutatom, hogy mi okozza ezt a hibát, és hogyan lehet megoldani ezt a hibát.

Gyakorlati munkafüzet letöltése

Töltse le ezt a gyakorlati munkafüzetet, hogy gyakorolhasson, miközben ezt a cikket olvassa.

Felhasználó által meghatározott típus Nem meghatározott.xlsm

2 Az okok és megoldások a A felhasználó által meghatározott típus nem definiált Excel VBA-ban

Vannak 2 az Excelben gyakran előforduló hiba hátterében álló főbb problémák VBA Vizsgáljuk meg őket részletesen, és találjuk meg a megoldási módokat.

1. Helyesírási hiba a változók deklarálása során

Ez a fő oka ennek a hibának. A legtöbbször a hiba "Felhasználó által definiált típus nem definiált" a változók deklarálása során elkövetett helyesírási hiba miatt következik be.

Nézze meg a következő kódsorokat.

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

Ha ezt a kódot futtatja, egy hibaüzenet jelenik meg, amely a hiba jelenlétéről tájékoztatja Önt. "Felhasználó által definiált típus nem definiált". Ezzel együtt kékkel kiemelve találod a kód második sorát, ahol azt írtam, hogy "strng" a "string" .

Remélem, érted a lényeget. VBA nem tudta felismerni a változó típusát "strng" , ezért új változótípusnak tekintette, és azt hitte, hogy valahol definiáltad, de amikor rájött, hogy sehol sem deklaráltad, hibát jelzett.

Ezért az egyszerű VBA kódok, ha mégis találkozol ezzel a hibával, először ellenőrizd a változótípusok helyesírását.

2. A megfelelő hivatkozás hiánya

A hiba hátterében egy másik ok áll, mégpedig a megfelelő hivatkozás hiánya. Néha használunk olyan objektumokat a kódjainkban, amelyeknek megfelelő hivatkozásra van szükségük a Visual Basic referencia doboz ...másképp, VBA nem ismeri fel az objektumot.

Nézze meg a következőket VBA kód.

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

Futtassa ezt a kódot. Ugyanazt a régi hibát fogja kapni. "Felhasználó által definiált típus nem definiált", kiemelve a Szótár objektum Ez azért van, mert VBA nem tudta felismerni a Szótár objektum , és úgy tekintette, mint egy felhasználó által definiált változót, amelyet nem tévesen definiáltak.

Most a legnagyobb kérdés az, hogy hogyan lehet megoldani ezt a hibát? Egyszerű. Vannak olyan 2 a hiba megoldásának módjai.

⧪ Megoldás 1: Az előfeltétel-hivatkozás ellenőrzése a vizuális doboz referenciamezőjéből

Ez a legokosabb módja a probléma megoldásának. Menjen a Eszközök> Referenciák gomb a Visual Basic szalag. Kattintson a Hivatkozások .

A párbeszédpanel neve Hivatkozások Megnyílik. Görgessen és keresse meg a Microsoft Scripting Runtime (Ez az Ön által használt objektumtól függ. Szótár objektum szüksége van Microsoft Scripting Runtime Tehát, miközben egy objektumot használunk egy VBA kódot, ismernie kell annak előfeltételét, hogy felismerje a VBA. További információkért látogasson el erre a linkre.). Ellenőrizze.

Most jöjjön vissza és futtassa a kódot. Nem fog hibát kapni. Mert VBA felismeri a Szótár objektum ezúttal.

⧪ Megoldás 2: Deklarálás tiszta objektumként, nem pedig specifikus objektumként

Van egy másik módja is a probléma megoldásának. Az objektumot deklarálhatjuk tiszta objektumként, nem pedig egy Szótár objektum .

Figyeljük meg a következő kódsorokat.

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

Itt deklaráltam a változót MyDictionary egyszerű objektumként, nem pedig Szótár. Ha most lefuttatja ezt a kódot, nem fog hibát kapni.

Hugh West nagy tapasztalattal rendelkező Excel-oktató és elemző, több mint 10 éves tapasztalattal az iparágban. Számvitel és pénzügy szakos alapdiplomát, valamint üzleti adminisztrációból mesterképzést szerzett. Hugh szenvedélye a tanítás, és egyedülálló tanítási megközelítést dolgozott ki, amely könnyen követhető és érthető. Az Excelben szerzett szakértői tudása világszerte több ezer diáknak és szakembernek segített abban, hogy készségeiket és karrierjüket kiválóan teljesítsék. Hugh blogján keresztül megosztja tudását a világgal, ingyenes Excel-oktatóanyagokat és online képzéseket kínálva, hogy segítse az egyéneket és a vállalkozásokat teljes potenciáljuk kibontakoztatásában.