: Tipo Definido por el Usuario No Definido en Excel VBA (2 Soluciones Rápidas)

  • Compartir Este
Hugh West

Uno de los errores más comunes a los que nos enfrentamos al trabajar con VBA en Excel es que el tipo definido por el usuario no está definido. En este artículo, le mostraré por qué se produce este error y cómo solucionarlo.

Descargar el cuaderno de prácticas

Descárgate este cuaderno de prácticas para ejercitarte mientras lees este artículo.

Tipo no definido.xlsm

2 Causas y soluciones Tipo definido por el usuario no definido en Excel VBA

Existen 2 principales cuestiones que subyacen a este error frecuente en Excel VBA Explorémoslos en detalle y averigüemos cómo resolverlos.

1. Error ortográfico al declarar variables

Esta es la razón principal de este error. La mayoría de las veces, el error "Tipo definido por el usuario no definido" se debe a un error ortográfico al declarar variables.

Mira las siguientes líneas de código.

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

Si ejecuta este código, obtendrá un cuadro de error que le notificará la presencia del error "Tipo definido por el usuario no definido". Junto a ella, encontrarás la segunda línea del código resaltada en azul, donde escribí "strng" en lugar de "cadena" .

Espero que lo entiendas. VBA no pudo reconocer el tipo de variable "strng" Por eso la consideró como un nuevo tipo de variable y pensó que la habías definido en algún sitio, pero cuando descubrió que no la habías declarado en ningún sitio, emitió un error.

Por lo tanto, mientras se ejecuta VBA códigos, si de todas formas se encuentra con este error, compruebe primero todas las grafías de sus tipos de variables.

2. Falta de referencias adecuadas

Otra de las causas de este error es la falta de una referenciación adecuada. A veces utilizamos algunos objetos en nuestros códigos que necesitan una referenciación adecuada desde el archivo Cuadro de referencia de Visual Basic . Por lo demás, VBA no reconoce el objeto.

Fíjese en lo siguiente VBA código.

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

Ejecute este código. Obtendrá el mismo error de siempre "Tipo de usuario no definido", destacando la Objeto de diccionario Esto se debe a que VBA no podía reconocer el Objeto de diccionario y la consideró como una variable definida por el usuario, que no ha sido definida erróneamente.

Ahora la gran pregunta es, ¿cómo solucionar este error? Fácil. Hay 2 formas de solucionar este error.

⧪ Solución 1: Comprobación de la referencia de requisito previo desde el cuadro de referencia de Visual Box.

Esta es la forma más inteligente de resolver este problema. Vaya a la sección Herramientas> Referencias en el botón Visual Basic Haga clic en Referencias .

Un cuadro de diálogo llamado Referencias Desplácese y busque Tiempo de ejecución de secuencias de comandos de Microsoft (Esto depende del objeto que esté utilizando. El Objeto de diccionario necesita Tiempo de ejecución de secuencias de comandos de Microsoft Por lo tanto, al utilizar un objeto en un VBA código, debe conocer su requisito previo para ser reconocido por VBA. Visite este enlace para obtener más información). Compruébelo.

Ahora vuelve y ejecuta el código. No te dará ningún error. Porque VBA puede reconocer el Objeto de diccionario esta vez.

⧪ Solución 2: Declararlo como un objeto puro en lugar de como un objeto específico.

Hay otra forma de resolver este problema: se puede declarar el objeto como un objeto puro, en lugar de un objeto Objeto de diccionario .

Fíjate en las siguientes líneas de código.

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

Aquí he declarado la variable MiDiccionario como un simple objeto, no un Diccionario. Ahora si ejecutas este código, no obtendrás ningún error.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.