: Brukerdefinert type ikke definert i Excel VBA (2 raske løsninger)

  • Dele Denne
Hugh West

En av de vanligste feilene vi møter når vi jobber med VBA i Excel, er at den brukerdefinerte typen ikke er definert. I denne artikkelen skal jeg vise deg hvorfor denne feilen er forårsaket og hvordan du løser denne feilen.

Last ned øvelsesarbeidsbok

Last ned denne øvelsesarbeidsboken for å trene mens du leser denne artikkelen.

Brukerdefinert type ikke definert.xlsm

2 årsaker og løsninger til Brukerdefinert Type ikke definert i Excel VBA

Det er 2 store problemer bak denne ofte oppståtte feilen i Excel VBA . La oss utforske dem i detalj og finne ut hvordan du kan løse dem.

1. Stavefeil under deklarering av variabler

Dette er hovedårsaken bak denne feilen. Mesteparten av tiden er feilen “Brukerdefinert type ikke definert” forårsaket på grunn av en stavefeil under deklarering av variabler.

Se på følgende linjer med koder.

9487

Hvis du kjører denne koden, vil du få en feilboks som varsler deg om tilstedeværelsen av feilen “User-Defined Type Not Defined”. Sammen med den finner du den andre linjen i koden uthevet i blått, der jeg skrev “strng” i stedet for “string” .

Jeg håper du forstår poenget. VBA kunne ikke gjenkjenne variabeltypen “strng” , det er derfor den betraktet den som en ny variabeltype og trodde du har definert den et sted. Men når detfant at du ikke har deklarert det noe sted, oppsto det en feil.

Derfor, mens du kjører enkle VBA -koder, hvis du uansett støter på denne feilen, kontroller først alle stavemåtene til variabeltypene dine.

2. Mangel på riktig referanse

Dette er en annen årsak bak denne feilen. Det er mangel på riktig referanse. Noen ganger bruker vi noen objekter i kodene våre som trenger riktig referanse fra Visual Basic Reference-boksen . Ellers gjenkjenner ikke VBA objektet.

Se på følgende VBA -kode.

2578

Kjør denne koden. Du får den samme gamle feilen “Brukerdefinert type ikke definert”, uthever Ordbokobjektet . Dette er fordi VBA ikke kunne gjenkjenne Dictionary-objektet , og betraktet det som en brukerdefinert variabel, som ikke har blitt definert feilaktig.

Nå er det største spørsmålet, hvordan løser jeg denne feilen? Lett. Det er 2 måter å løse denne feilen på.

⧪ Løsning 1: Sjekke forutsetningsreferansen fra Visual Box Reference Box

Dette er smarteste måten å løse dette problemet på. Gå til Verktøy > Referanser -knappen i Visual Basic -båndet. Klikk på Referanser .

En dialogboks kalt Referanser åpnes. Bla og finn Microsoft Scripting Runtime (Dette avhenger av objektet du bruker. Ordbokenobjekt Microsoft Scripting Runtime gjenkjennes. Så mens du bruker et objekt i en VBA -kode, må du kjenne dens forutsetning for å bli gjenkjent av VBA. Besøk denne lenken for mer informasjon.). Sjekk det.

Nå kom tilbake og kjør koden. Du får ingen feil. Fordi VBA kan gjenkjenne Dictionary-objektet denne gangen.

⧪ Løsning 2: Erklære det som et rent objekt i stedet for et spesifikt objekt

Det er en annen måte å løse dette problemet på. Du kan erklære objektet som et rent objekt, i stedet for et Ordbokobjekt .

Legg merke til følgende kodelinjer.

8798

Her har jeg erklært variabelen MyDictionary som et enkelt objekt, ikke en Ordbok. Hvis du kjører denne koden, får du ingen feilmelding.

Hugh West er en svært erfaren Excel-trener og analytiker med over 10 års erfaring i bransjen. Han har en bachelorgrad i regnskap og finans og en mastergrad i bedriftsøkonomi. Hugh har en lidenskap for undervisning og har utviklet en unik undervisningstilnærming som er enkel å følge og forstå. Hans ekspertkunnskap om Excel har hjulpet tusenvis av studenter og fagfolk over hele verden med å forbedre sine ferdigheter og utmerke seg i karrieren. Gjennom bloggen sin deler Hugh sin kunnskap med verden, og tilbyr gratis Excel-opplæringer og nettbasert opplæring for å hjelpe enkeltpersoner og bedrifter å nå sitt fulle potensial.