Táboa de contidos
Un dos erros máis comúns aos que nos enfrontamos ao traballar con VBA en Excel é que o tipo definido polo usuario non está definido. Neste artigo mostrarei por que se produce este erro e como solucionalo.
Descargar libro de prácticas
Descargar este libro de prácticas para facer exercicio mentres fas están lendo este artigo.
Tipo definido polo usuario non definido.xlsm
2 Causas e solucións para Definido polo usuario Tipo non definido en Excel VBA
Hai 2 problemas principais detrás deste erro que se atopa con frecuencia en Excel VBA . Explorémolos en detalle e descubramos as formas de resolvelos.
1. Erro ortográfico ao declarar variables
Esta é a principal razón detrás deste erro. Na maioría das veces, o erro “Tipo definido polo usuario non definido” prodúcese debido a un erro ortográfico ao declarar variables.
Mira as seguintes liñas de códigos.
7692
Se executas este código, obterás unha caixa de erro que che notificará a presenza do erro “Tipo definido polo usuario non definido”. Xunto con ela, atoparás a segunda liña do código resaltada en azul, onde escribín “strng” en lugar de “cadea” .
Espero que entendas o punto. VBA non puido recoñecer o tipo de variable “strng” , por iso considerouno como un novo tipo de variable e pensou que a definiches nalgún lugar. Pero candodescubriu que non o declaraches en ningún lado, provocou un erro.
Polo tanto, mentres executas códigos VBA sinxelos, se atopas este erro de calquera xeito, comproba primeiro todas as ortografías dos teus tipos de variables.
2. Falta de referencias adecuadas
Esta é outra causa detrás deste erro. Iso é a falta de referencias adecuadas. Ás veces usamos algúns obxectos nos nosos códigos que necesitan referencias adecuadas desde a caixa de referencia de Visual Basic . En caso contrario, VBA non recoñece o obxecto.
Mira o seguinte código VBA .
8704
Executar este código. Recibirá o mesmo erro antigo "Tipo definido polo usuario non definido", resaltando o Obxecto dicionario . Isto débese a que VBA non puido recoñecer o obxecto dicionario e considerouno como unha variable definida polo usuario, que non se definiu por erro.
Agora a pregunta máis importante é como resolver este erro? Fácil. Hai 2 formas de resolver este erro.
⧪ Solución 1: comprobando a referencia de requisitos previos desde a caixa de referencia da caixa visual
Este é o a forma máis intelixente de resolver este problema. Vaia ás Ferramentas > Referencias da cinta Visual Basic . Fai clic en Referencias .
Abrirase un cadro de diálogo chamado Referencias . Desprácese e busque Microsoft Scripting Runtime (Isto depende do obxecto que estea a usar. O Dicionarioobject precisa Microsoft Scripting Runtime para ser recoñecido. Polo tanto, ao usar un obxecto nun código VBA , debes coñecer o seu requisito previo para ser recoñecido por VBA. Visita esta ligazón para obter máis información.). Comprobeo.
Agora volve e executa o código. Non terás erros. Porque VBA pode recoñecer o obxecto dicionario esta vez.
⧪ Solución 2: Declaralo como un obxecto puro en lugar de un obxecto específico
Hai outra forma de resolver este problema. Podes declarar o obxecto como un obxecto puro, en lugar de un Obxecto de dicionario .
Ten en conta as seguintes liñas de códigos.
3760
Aquí declarei a variable MyDictionary como un obxecto simple, non un Dicionario. Agora, se executas este código, non terás ningún erro.