Objeto VBA requerido

Objeto requerido en Excel VBA

Los errores son parte integral del lenguaje de codificación, pero la verdadera genialidad radica en encontrar el error y corregir esos errores. El primer paso para corregir esos errores es la inteligencia de encontrar por qué ocurren. Si puede encontrar por qué se producen esos errores, entonces es un trabajo muy fácil corregir esos errores sin sudar. Uno de esos errores en la codificación de VBA es "Objeto requerido".

Si recuerda mientras aprende variables y asigna tipos de datos a esas variables, también tenemos tipos de datos de "Objeto". Cuando se asigna el tipo de datos del objeto y si ese objeto no existe en la hoja de trabajo o el libro de trabajo al que nos referimos, obtendríamos el mensaje de error de VBA como "Objeto requerido" . Por lo tanto, como codificador nuevo, es común declarar entrar en pánico en esas situaciones porque en el nivel inicial el principiante no puede encontrar la causa de este error.

¿Por qué se produce un error de objeto requerido? (¿Y como arreglarlo?)

Bien, se necesitan dos o tres ejemplos para comprender realmente por qué ocurre este error y cómo solucionarlo.

Puede descargar esta plantilla de Excel necesaria para objetos VBA aquí - Plantilla de Excel necesaria para objetos VBA

Para ver un ejemplo, mire el siguiente código.

Código:

 Sub Last_Row () Dim Wb As Workbook Dim Ws As Worksheet Dim MyToday As Date Set Wb = ThisWorkbook Set Ws = ThisWorkbook.Worksheets ("Data") Set MyToday = Wb.Ws.Cells (1, 1) MsgBox MyToday End Sub 

Déjame explicarte el código anterior.

He declarado tres variables y las dos primeras variables se refieren a los objetos "Libro de trabajo" y "Hoja de trabajo". La tercera variable se refiere al tipo de datos "Fecha".

Cuando los tipos de datos "Objeto" se asignan a la variable, necesitamos usar la tecla "Establecer" para asignar la referencia del objeto a la variable, por lo que en las siguientes dos líneas, usando la palabra clave "Establecer", he asignado la referencia de "ThisWorkbook" a la variable "Wb" porque esta variable contiene el tipo de datos del objeto como "Workbook" y para la variable "Ws" he asignado el objeto de la hoja de trabajo de la hoja de trabajo "Data" en este libro.

 Establecer Wb = ThisWorkbook
 Establecer Ws = ThisWorkbook.Worksheets ("Datos")
  • En la siguiente línea para la variable de tipo de datos "Fecha" también he usado la palabra clave "Establecer" para asignar el valor del valor de la celda A1 en este libro de trabajo (Wb) y en la hoja de trabajo "Datos" (Ws).
 Establecer MyToday = Wb.Ws.Cells (1, 1)
  • En la siguiente línea, estamos mostrando el valor del valor de la variable "MyDate" del valor de la celda A1 en el cuadro de mensaje en VBA.
MsgBox MyToday
  • Ok, ejecutemos este código y veamos qué obtenemos como resultado.

Como puede ver arriba, muestra el mensaje de error de VBA como "Objeto requerido" . Ok, es hora de examinar por qué recibimos este mensaje de error.

  • En la imagen del mensaje de error anterior en la sección de código, mientras se muestra el mensaje de error, ha resaltado la parte de error del código con color azul.

  • Entonces, la pregunta que queda es por qué obtuvimos este error. Lo primero que debemos ver es este tipo de datos variable en particular. Regrese a la línea anterior de código donde le hemos asignado el tipo de datos a la variable “MyDate”.

  • Hemos asignado el tipo de datos variables como "Fecha" y ahora volvemos a la línea de error.

En esta línea, hemos utilizado la palabra clave "Conjunto", mientras que nuestro tipo de datos no es el tipo de datos "Objeto". Entonces, en el momento en que el código VBA ve la palabra clave "Establecer", asume que es un tipo de datos de objeto y dice que requiere una referencia de objeto.

Entonces, la conclusión es que la palabra clave "Establecer" se usa para hacer referencia solo a las variables de objeto como Hoja de trabajo, Libro de trabajo, etc. ...

Ejemplo 1

Ahora eche un vistazo al siguiente código.

Código:

 Sub Object_Required_Error () Range ("A101"). Value = Application1.WorksheetFunction.Sum (Range ("A1: A100")) End Sub 

En el código anterior, hemos utilizado la función de hoja de trabajo “SUMA” para obtener el total de los valores de celda de A1 a A100. Cuando ejecute este código, encontraremos el siguiente error.

¡Ups! Dice “Error en tiempo de ejecución '424': Objeto requerido.

Ahora echemos un vistazo de cerca al código.

En lugar de utilizar "Aplicación", hemos utilizado por error "Aplicación1", por lo que se encontró el error de "Objeto requerido" en el código VBA.

Si la palabra "Opción explícita" está habilitada, obtendremos el error "Variable no definida".

Cosas para recordar

  • Objeto requerido significa que la referencia del tipo de datos del objeto debe ser precisa.
  • Cuando la opción palabra explícita no está habilitada en la codificación, obtendremos un error de Objeto requerido para las palabras de variable mal escritas y si la Opción explícita está habilitada obtendremos el error de variable no definida para las palabras de variable mal escritas.