: Door gebruiker gedefinieerd type niet gedefinieerd in Excel VBA (2 snelle oplossingen)

  • Deel Dit
Hugh West

Een van de meest voorkomende fouten die we tegenkomen bij het werken met VBA in Excel is dat het door de gebruiker gedefinieerde type niet is gedefinieerd. In dit artikel laat ik u zien waarom deze fout wordt veroorzaakt en hoe u deze fout kunt oplossen.

Download Praktijk Werkboek

Download dit oefenwerkboek om te oefenen terwijl u dit artikel leest.

User-Defined Type Not Defined.xlsm

2 Oorzaken en oplossingen voor Door gebruiker gedefinieerd type niet gedefinieerd in Excel VBA

Er zijn 2 belangrijkste problemen achter deze vaak voorkomende fout in Excel VBA Laten we ze in detail onderzoeken en manieren vinden om ze op te lossen.

1. Spelfout bij het declareren van variabelen

Dit is de belangrijkste reden achter deze fout. Meestal is de fout "User-Defined Type niet gedefinieerd" wordt veroorzaakt door een spelfout bij het declareren van variabelen.

Kijk naar de volgende regels code.

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

Als u deze code uitvoert, krijgt u een foutvenster dat u de aanwezigheid van de fout meldt "User-Defined Type Not Defined". Daarbij vind je de tweede regel van de code in blauw gemarkeerd, waar ik schreef "strng" in plaats van "string" .

Ik hoop dat je het snapt. VBA kon het variabele type niet herkennen "strng" Daarom beschouwde het het als een nieuw variabelentype en dacht dat u het ergens had gedefinieerd. Maar toen het ontdekte dat u het nergens had gedeclareerd, gaf het een foutmelding.

Daarom, tijdens het uitvoeren van eenvoudige VBA codes, als u deze fout toch tegenkomt, controleer dan eerst alle schrijfwijzen van uw variabele types.

2. Gebrek aan goede verwijzingen

Dit is een andere oorzaak achter deze fout. Dat is een gebrek aan goede verwijzingen. Soms gebruiken we sommige objecten in onze codes die een goede verwijzing nodig hebben van de Visual Basic referentiekader . Anders, VBA herkent het object niet.

Kijk naar het volgende VBA code.

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

Voer deze code uit. Je krijgt dezelfde oude foutmelding "User-Defined Type not Defined", het benadrukken van de Woordenboek object Dit is omdat VBA kon de Woordenboek object , en beschouwd als een door de gebruiker gedefinieerde variabele, die niet verkeerd gedefinieerd is.

Nu is de grootste vraag, hoe deze fout op te lossen? Gemakkelijk. Er zijn 2 manieren om deze fout op te lossen.

⧪ Oplossing 1: De referentie van de voorwaarde controleren vanuit de Visual Box Reference Box

Dit is de slimste manier om dit probleem op te lossen. Ga naar de Gereedschap> Referenties knop in de Visual Basic lint. Klik op Referenties .

Een dialoogvenster genaamd Referenties zal openen. Scroll en zoek Microsoft Scripting Runtime (Dit hangt af van het object dat u gebruikt. De Woordenboek object heeft nodig Microsoft Scripting Runtime om herkend te worden. Dus, tijdens het gebruik van een object in een VBA code, moet je de voorwaarde kennen om herkend te worden door VBA. Bezoek deze link voor meer informatie.) Controleer het.

Kom nu terug en voer de code uit. Je zult geen fouten krijgen. Want VBA kan de Woordenboek object deze keer.

⧪ Oplossing 2: Declareren als een zuiver object in plaats van een specifiek object

Er is een andere manier om dit probleem op te lossen. U kunt het object declareren als een zuiver object, in plaats van een Woordenboek object .

Let op de volgende coderegels.

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

Hier heb ik de variabele MyDictionary als een eenvoudig object, niet een Woordenboek. Als je deze code uitvoert, krijg je geen foutmelding.

Hugh West is een zeer ervaren Excel-trainer en -analist met meer dan 10 jaar ervaring in de branche. Hij heeft een bachelor in Accounting en Finance en een master in Business Administration. Hugh heeft een passie voor lesgeven en heeft een unieke lesaanpak ontwikkeld die gemakkelijk te volgen en te begrijpen is. Zijn deskundige kennis van Excel heeft duizenden studenten en professionals over de hele wereld geholpen hun vaardigheden te verbeteren en uit te blinken in hun carrière. Via zijn blog deelt Hugh zijn kennis met de wereld en biedt hij gratis Excel-tutorials en online trainingen aan om individuen en bedrijven te helpen hun volledige potentieel te bereiken.