: Käyttäjän määrittelemä tyyppi, jota ei ole määritetty Excel VBA:ssa (2 nopeaa ratkaisua)

  • Jaa Tämä
Hugh West

Yksi yleisimmistä virheistä, joita kohtaamme työskennellessämme VBA Excelissä on se, että käyttäjän määrittelemää tyyppiä ei ole määritelty. Tässä artikkelissa näytän, mistä tämä virhe johtuu ja miten se ratkaistaan.

Lataa harjoituskirja

Lataa tämä harjoituskirja, jotta voit harjoitella tätä artikkelia lukiessasi.

Käyttäjän määrittelemä tyyppi Not Defined.xlsm

2 Syyt ja ratkaisut Käyttäjän määrittelemä tyyppi ei ole määritetty Excel VBA:ssa

On olemassa 2 tämän Excelissä usein esiintyvän virheen taustalla olevat tärkeimmät asiat VBA Tutustutaan niihin yksityiskohtaisesti ja selvitetään, miten ne voidaan ratkaista.

1. Kirjoitusvirhe muuttujia ilmoitettaessa

Tämä on suurin syy tähän virheeseen. Useimmiten virhe on seurausta "Käyttäjän määrittelemä tyyppi ei ole määritelty" johtuu kirjoitusvirheestä muuttujien ilmoittamisessa.

Katso seuraavia koodirivejä.

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

Jos suoritat tämän koodin, saat virheikkunan, jossa ilmoitetaan virheen olemassaolosta. "Käyttäjän määrittelemä tyyppi ei määritelty". Sen ohella löydät sinisellä korostetun koodin toisen rivin, johon kirjoitin "strng" tilalle "string" .

Toivottavasti ymmärrät asian. VBA ei tunnistanut muuttujan tyyppiä "strng" , siksi se piti sitä uutena muuttujatyyppinä ja luuli, että olet määritellyt sen jossain. Mutta kun se huomasi, ettet ole ilmoittanut sitä missään, se antoi virheen.

Siksi yksinkertaisia VBA koodit, jos kohtaat tämän virheen joka tapauksessa, tarkista ensin muuttujatyyppien oikeinkirjoitus.

2. Asianmukaisen viittauksen puute

Virheen taustalla on toinenkin syy, nimittäin asianmukaisen viittauksen puute. Joskus käytämme koodissamme joitakin objekteja, jotka tarvitsevat asianmukaisen viittauksen tiedostosta Visual Basic -viitekehys ...muutoin, VBA ei tunnista kohdetta.

Katso seuraavaa VBA koodi.

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

Suorita tämä koodi. Saat saman vanhan virheilmoituksen. "Käyttäjän määrittelemä tyyppi ei ole määritelty", korostaen Sanakirjan objekti Tämä johtuu siitä, että VBA ei voinut tunnistaa Sanakirjan objekti ja pidettiin sitä käyttäjän määrittelemänä muuttujana, jota ei ole määritelty virheellisesti.

Nyt suurin kysymys on, miten tämä virhe ratkaistaan? Helppo. On olemassa 2 tapoja ratkaista tämä virhe.

⧪ Ratkaisu 1: Edellytysviittauksen tarkistaminen Visual Boxin viitekehyksestä

Tämä on fiksuin tapa ratkaista tämä ongelma. Mene osoitteeseen Työkalut> Viitteet painiketta Visual Basic nauha. Napsauta Viitteet .

Valintaikkuna nimeltä Viitteet aukeaa. Selaa ja etsi Microsoft Scripting Runtime (Tämä riippuu käyttämästäsi kohteesta.) Sanakirjan objekti tarvitsee Microsoft Scripting Runtime Kun objektia käytetään objektissa, se on tunnistettava. VBA koodi, sinun on tiedettävä sen edellytyksenä on tunnustettava. VBA. Lisätietoja saat tästä linkistä.). Tarkista se.

Palaa nyt takaisin ja suorita koodi. Et saa mitään virheitä. Koska VBA voi tunnistaa Sanakirjan objekti tällä kertaa.

⧪ Ratkaisu 2: Ilmoittaminen puhtaaksi objektiksi tietyn objektin sijasta.

On toinenkin tapa ratkaista tämä ongelma. Voit ilmoittaa objektin puhtaaksi objektiksi sen sijaan, että se olisi Sanakirjan objekti .

Huomaa seuraavat koodirivit.

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

Tässä olen ilmoittanut muuttujan MyDictionary yksinkertaisena objektina, ei Sanakirja. Jos suoritat tämän koodin, et saa mitään virheilmoitusta.

Hugh West on erittäin kokenut Excel-kouluttaja ja analyytikko, jolla on yli 10 vuoden kokemus alalta. Hän on koulutukseltaan laskentatoimen ja rahoituksen kandidaatti sekä kauppatieteiden maisteri. Hughilla on intohimo opettamiseen, ja hän on kehittänyt ainutlaatuisen opetusmenetelmän, jota on helppo seurata ja ymmärtää. Hänen asiantuntemuksensa Excelistä on auttanut tuhansia opiskelijoita ja ammattilaisia ​​maailmanlaajuisesti parantamaan taitojaan ja menestymään urallaan. Blogissaan Hugh jakaa tietämyksensä maailman kanssa tarjoamalla ilmaisia ​​Excel-opetusohjelmia ja verkkokoulutusta auttaakseen yksilöitä ja yrityksiä saavuttamaan täyden potentiaalinsa.