: Gebruikergedefinieerde tipe nie in Excel VBA gedefinieer nie (2 vinnige oplossings)

  • Deel Dit
Hugh West

Een van die mees algemene foute wat ons in die gesig staar terwyl ons met VBA in Excel werk, is dat die gebruikergedefinieerde tipe nie gedefinieer is nie. In hierdie artikel sal ek jou wys hoekom hierdie fout veroorsaak word en hoe om hierdie fout op te los.

Laai Oefenwerkboek af

Laai hierdie oefenwerkboek af om te oefen terwyl jy lees hierdie artikel.

Gebruiker-gedefinieerde tipe nie gedefinieer nie.xlsm

2 oorsake en oplossings vir Gebruiker gedefinieerde Tipe nie gedefinieer in Excel VBA

Daar is 2 groot probleme agter hierdie gereelde fout in Excel VBA . Kom ons verken hulle in detail en vind die maniere uit om dit op te los.

1. Spelfout terwyl veranderlikes verklaar word

Dit is die hoofrede agter hierdie fout. Meeste van die tyd word die fout “Gebruiker-gedefinieerde tipe nie gedefinieer nie” veroorsaak as gevolg van 'n spelfout terwyl veranderlikes verklaar word.

Kyk na die volgende reëls kodes.

8055

As jy hierdie kode gebruik, sal jy 'n foutblokkie kry wat jou in kennis stel van die teenwoordigheid van die fout “Gebruiker-gedefinieerde tipe nie gedefinieer nie”. Saam met dit, sal jy die tweede reël van die kode in blou uitgelig vind, waar ek “strng” in die plek van “string” geskryf het.

Ek hoop jy verstaan ​​die punt. VBA kon nie die veranderlike tipe “strng” herken nie, daarom het dit dit as 'n nuwe veranderlike tipe beskou en gedink jy het dit iewers gedefinieer. Maar wanneer ditgevind dat jy dit nêrens verklaar het nie, het dit 'n fout laat ontstaan.

Daarom, terwyl jy eenvoudige VBA -kodes gebruik, as jy in elk geval hierdie fout teëkom, gaan eers al die spellings van jou veranderlike tipes na.

2. Gebrek aan behoorlike verwysing

Dit is nog 'n oorsaak agter hierdie fout. Dit is 'n gebrek aan behoorlike verwysing. Soms gebruik ons ​​'n paar voorwerpe in ons kodes wat behoorlike verwysing van die Visuele Basiese Verwysing boks benodig. Andersins herken VBA nie die voorwerp nie.

Kyk na die volgende VBA -kode.

6906

Begin hierdie kode. Jy sal dieselfde ou fout kry “Gebruikergedefinieerde tipe nie gedefinieer nie”, wat die Woordeboekvoorwerp uitlig. Dit is omdat VBA nie die Woordeboekobjek kon herken nie, en dit as 'n gebruikergedefinieerde veranderlike beskou het, wat nie verkeerdelik gedefinieer is nie.

Nou is die grootste vraag, hoe om hierdie fout op te los? Maklik. Daar is 2 maniere om hierdie fout op te los.

⧪ Oplossing 1: Kontroleer die Voorvereiste Verwysing vanaf die Visual Box Reference Box

Dit is die slimste manier om hierdie probleem op te los. Gaan na die Tools > Verwysings -knoppie in die Visual Basic -lint. Klik op Verwysings .

'n Dialoogkassie genaamd Verwysings sal oopmaak. Blaai en vind Microsoft Scripting Runtime (Dit hang af van die voorwerp wat jy gebruik. Die Woordeboekobjek moet Microsoft Scripting Runtime herken word. Dus, terwyl jy 'n voorwerp in 'n VBA -kode gebruik, moet jy die voorvereiste ken om deur VBA herken te word. Besoek hierdie skakel vir meer inligting.). Gaan dit na.

Kom nou terug en voer die kode uit. Jy sal geen foute kry nie. Omdat VBA hierdie keer die Woordeboekobjek kan herken.

⧪ Oplossing 2: Verklaar dit as 'n suiwer voorwerp eerder as 'n spesifieke voorwerp

Daar is 'n ander manier om hierdie probleem op te los. Jy kan die voorwerp as 'n suiwer voorwerp verklaar, eerder as 'n Woordeboekvoorwerp .

Let op die volgende reëls kodes.

5341

Hier het ek die veranderlike MyDictionary as 'n eenvoudige objek verklaar, nie 'n Woordeboek nie. As jy nou hierdie kode gebruik, sal jy geen fout kry nie.

Hugh West is 'n hoogs ervare Excel-afrigter en ontleder met meer as 10 jaar ondervinding in die bedryf. Hy het 'n Baccalaureusgraad in Rekeningkunde en Finansies en 'n Meestersgraad in Besigheidsadministrasie. Hugh het 'n passie vir onderrig en het 'n unieke onderrigbenadering ontwikkel wat maklik is om te volg en te verstaan. Sy kundige kennis van Excel het duisende studente en professionele persone wêreldwyd gehelp om hul vaardighede te verbeter en uit te blink in hul loopbane. Deur sy blog deel Hugh sy kennis met die wêreld, en bied gratis Excel-tutoriale en aanlyn opleiding aan om individue en besighede te help om hul volle potensiaal te bereik.