: Typ zdefiniowany przez użytkownika nie zdefiniowany w Excelu VBA (2 szybkie rozwiązania)

  • Udostępnij To
Hugh West

Jednym z najczęstszych błędów, z jakimi spotykamy się podczas pracy z VBA w Excelu jest to, że typ zdefiniowany przez użytkownika nie jest zdefiniowany. W tym artykule pokażę, dlaczego ten błąd jest spowodowany i jak go rozwiązać.

Pobierz Zeszyt ćwiczeń

Pobierz ten zeszyt ćwiczeń, aby ćwiczyć podczas czytania tego artykułu.

Typ zdefiniowany przez użytkownika Not Defined.xlsm

2 Przyczyny i rozwiązania Typ zdefiniowany przez użytkownika nie zdefiniowany w Excelu VBA

Istnieją 2 główne problemy stojące za tym często spotykanym w Excelu błędem VBA Poznajmy je szczegółowo i znajdźmy sposoby na ich rozwiązanie.

1) Błąd pisowni podczas deklarowania zmiennych

Jest to główna przyczyna tego błędu.W większości przypadków błąd "User-Defined Type not Defined" jest spowodowany błędem pisowni podczas deklarowania zmiennych.

Spójrz na następujące linie kodu.

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

Jeśli uruchomisz ten kod, otrzymasz okno błędu informujące o obecności błędu "User-Defined Type Not Defined". Wraz z nim znajdziesz drugą linię kodu zaznaczoną na niebiesko, gdzie napisałem "strng" zamiast "string" .

Mam nadzieję, że rozumiecie o co chodzi. VBA nie mógł rozpoznać zmiennej typu "strng" Dlatego też uznał ją za nowy typ zmiennej i pomyślał, że gdzieś ją zdefiniowałeś, ale kiedy stwierdził, że nigdzie jej nie zadeklarowałeś, podniósł błąd.

Dlatego też, podczas prowadzenia prostych VBA kody, jeśli mimo wszystko napotkasz ten błąd, najpierw sprawdź wszystkie pisownie swoich typów zmiennych.

2. brak właściwego odniesienia

Inną przyczyną tego błędu jest brak odpowiedniego odwołania. Czasami w naszych kodach używamy obiektów, które wymagają odpowiedniego odwołania z Skrzynka referencyjna Visual Basic ... Inaczej, VBA nie rozpoznaje obiektu.

Zobacz. VBA kod.

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

Uruchom ten kod, a otrzymasz ten sam stary błąd. "User-Defined Type not Defined", podkreślenie Obiekt słownikowy To dlatego, że VBA nie mógł rozpoznać Obiekt słownikowy , i uznał ją za zmienną zdefiniowaną przez użytkownika, która nie została zdefiniowana błędnie.

Teraz największe pytanie brzmi, jak rozwiązać ten błąd? Łatwo. Istnieją 2 sposoby na rozwiązanie tego błędu.

⧪ Rozwiązanie 1: Sprawdzanie odniesienia do warunków wstępnych z poziomu okna referencyjnego Visual Box

Jest to najmądrzejszy sposób na rozwiązanie tego problemu.Przejdź do Narzędzia> Referencje przycisk w Visual Basic wstążka. kliknij na Referencje .

Pojawi się okno dialogowe o nazwie Referencje otworzy się. Przewiń i znajdź Microsoft Scripting Runtime (To zależy od obiektu, którego używasz. Obiekt słownikowy potrzebuje Microsoft Scripting Runtime aby zostać rozpoznanym. Tak więc, podczas używania obiektu w VBA kod, musisz znać jego warunek wstępny, aby zostać rozpoznanym przez VBA. Odwiedź ten link, aby uzyskać więcej informacji). Sprawdź.

Teraz wróć i uruchom kod, nie dostaniesz żadnych błędów. bo VBA potrafi rozpoznać Obiekt słownikowy tym razem.

⧪ Rozwiązanie 2: Deklarowanie go jako czystego obiektu, a nie konkretnego obiektu

Istnieje inny sposób rozwiązania tego problemu. Możesz zadeklarować obiekt jako czysty obiekt, a nie jako Obiekt słownikowy .

Zwróć uwagę na następujące linie kodu.

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

Tutaj zadeklarowałem zmienną MyDictionary jako zwykły obiekt, a nie Słownik. Teraz, jeśli uruchomisz ten kod, nie otrzymasz żadnego błędu.

Hugh West jest bardzo doświadczonym trenerem i analitykiem Excela z ponad 10-letnim doświadczeniem w branży. Posiada tytuł licencjata w dziedzinie rachunkowości i finansów oraz tytuł magistra administracji biznesowej. Hugh ma pasję do nauczania i opracował unikalne podejście do nauczania, które jest łatwe do naśladowania i zrozumienia. Jego specjalistyczna wiedza na temat programu Excel pomogła tysiącom studentów i profesjonalistów na całym świecie doskonalić swoje umiejętności i osiągać doskonałe wyniki w karierze. Za pośrednictwem swojego bloga Hugh dzieli się swoją wiedzą ze światem, oferując bezpłatne samouczki programu Excel i szkolenia online, aby pomóc osobom indywidualnym i firmom w pełni wykorzystać swój potencjał.