Taula de continguts
Un dels errors més habituals als quals ens enfrontem mentre treballem amb VBA a Excel és que el tipus definit per l'usuari no està definit. En aquest article, us mostraré per què es produeix aquest error i com resoldre'l.
Descarregueu el quadern de pràctiques
Descarregueu aquest quadern de pràctiques per fer exercici mentre feu exercici Esteu llegint aquest article.
Tipus definit per l'usuari no definit.xlsm
2 Causes i solucions per a Definit per l'usuari Tipus no definit a Excel VBA
Hi ha 2 problemes importants darrere d'aquest error que es troba amb freqüència a Excel VBA . Explorem-los amb detall i descobrim les maneres de resoldre’ls.
1. Error ortogràfic en declarar variables
Aquest és el motiu principal d'aquest error. La majoria de vegades, l'error “Tipus definit per l'usuari no definit” es produeix a causa d'un error ortogràfic mentre es declaren variables.
Mireu les línies de codis següents.
5009.
Si executeu aquest codi, obtindreu un quadre d'error que us notificarà de la presència de l'error "Tipus definit per l'usuari no definit". Juntament, trobareu la segona línia del codi ressaltada en blau, on vaig escriure “strng” en lloc de “cadena” .
Espero que entenguis el punt. VBA no ha pogut reconèixer el tipus de variable “strng” , per això la va considerar com un tipus de variable nou i va pensar que l'heu definit en algun lloc. Però quan aixòTrobeu que no l'heu declarat enlloc, va generar un error.
Per tant, mentre executeu codis VBA senzills, si trobeu aquest error de totes maneres, primer comproveu totes les grafies dels vostres tipus de variables.
2. Falta de referència adequada
Aquesta és una altra causa d'aquest error. Això és una falta de referència adequada. De vegades fem servir alguns objectes als nostres codis que necessiten una referència adequada des del quadre de referència de Visual Basic . En cas contrari, VBA no reconeix l'objecte.
Mireu el codi VBA següent.
8790
Executeu aquest codi. Obtindreu el mateix error anterior "Tipus definit per l'usuari no definit", ressaltant l' objecte de diccionari . Això es deu al fet que VBA no ha pogut reconèixer l' objecte de diccionari i el va considerar com una variable definida per l'usuari, que no s'ha definit per error.
Ara la pregunta més gran és com es pot resoldre aquest error? Fàcil. Hi ha 2 maneres de resoldre aquest error.
⧪ Solució 1: comprovant la referència dels requisits previs al quadre de referència de la caixa visual
Aquest és el la manera més intel·ligent de resoldre aquest problema. Aneu a Eines > Botó Referències a la cinta Visual Basic . Feu clic a Referències .
S'obrirà un quadre de diàleg anomenat Referències . Desplaceu-vos i cerqueu Microsoft Scripting Runtime (Això depèn de l'objecte que feu servir. El Diccionariobject necessita que es reconegui Microsoft Scripting Runtime . Per tant, mentre utilitzeu un objecte en un codi VBA , heu de conèixer el seu requisit previ per ser reconegut per VBA. Visiteu aquest enllaç per obtenir més informació.). Comproveu-ho.
Ara torneu i executeu el codi. No rebràs cap error. Perquè VBA aquesta vegada pot reconèixer l' objecte de diccionari .
⧪ Solució 2: declarar-lo com un objecte pur en lloc d'un objecte específic
Hi ha una altra manera de resoldre aquest problema. Podeu declarar l'objecte com a objecte pur, en lloc d'un objecte de diccionari .
Observeu les línies de codis següents.
8110
Aquí he declarat la variable MyDictionary com un objecte simple, no un Diccionari. Ara, si executeu aquest codi, no obtindreu cap error.