VBA Error 1004 – Error Definido por la Aplicación o Error definido por el Objeto

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on agosto 15, 2022

Este tutorial explicará el error 1004 de VBA – Error definido por la aplicación o por el objeto.

El error 1004 de VBA en tiempo de ejecución se conoce como un error definido por la aplicación o por el objeto que se produce mientras se ejecuta el código. Cometer errores de codificación (Vea nuestra Guía de Manejo de Errores) es un aspecto inevitable al aprender VBA, pero saber por qué ocurre un error le ayuda a evitar cometer errores en la codificación futura.

VBA Error 1004 – El Objeto No Existe

Si nos referimos a un objeto en nuestro código, como un Nombre de Rango que no ha sido definido, entonces este error puede ocurrir ya que el código VBA será incapaz de encontrar el nombre.

Sub CopiarRango()
  Dim CopyFrom As Range
  Dim CopyTo As Range
  Set CopyFrom = Hojas(1).Rango("CopyFrom")
  Set CopyTo = Sheets(1).Range("CopyTo")
  CopyFrom.Copy
CopyTo.PasteSpecial xlPasteValues
End Sub

El ejemplo anterior copiará los valores del rango con nombre «CopyFrom» al rango con nombre «CopyTo» – con la condición, por supuesto, de que se trate de rangos con nombre existentes Si no existen, aparecerá el error 1004.

Error 1004 Definido por la Aplicación o el Objeto

La forma más sencilla de evitar este error en el ejemplo anterior es crear los nombres de los rangos en el libro de Excel, o referirse al rango en el formato tradicional de fila y columna, por ejemplo Range(«A1:A10»).

VBA Error 1004 – Nombre Ya Tomado

El error también puede ocurrir si está intentando renombrar un objeto a un objeto que ya existe – por ejemplo si estamos intentando renombrar la Hoja1 pero el nombre que le estamos dando a la hoja ya es el nombre de otra hoja.

Sub NombreHojaTrabajo()
   ActiveSheet.Name = "Hoja2"
End Sub

Si ya tenemos una Hoja2, entonces se producirá el error.

Error 1004 Nombre Ya Tomado

VBA Error 1004 – Referencia Incorrecta a un Objeto

El error también puede ocurrir cuando usted ha referenciado incorrectamente un objeto en su código. Por ejemplo:

Sub CopiarRango()
    Dim CopyFrom As Range
    Dim CopyTo As Range
    Set CopyFrom = Range("A1:A10")
    Set CopyTo = Range("C1:C10")
    Range(CopyFrom).Copy
    Range(CopyTo).PasteSpecial xlPasteValues
End Sub

Esto nos dará de nuevo el Error 10004

Error 1004 Referencia Errónea

Corrija el código y el error ya no se mostrará.

Sub CopiarRango()
    Dim CopyFrom As Range
    Dim CopyTo As Range
    Set CopyFrom = Range("A1:A10")
    Set CopyTo = Range("C1:C10")
    CopyFrom.Copy
    CopyTo.PasteSpecial xlPasteValues
End Sub

VBA Error 1004 – Objeto No Encontrado

Este error también puede producirse cuando intentamos abrir un libro de trabajo y éste no se encuentra, siendo el libro de trabajo en este caso el objeto que no se encuentra.

Sub AbrirArchivo()
   Dim wb As Workbook
   Set wb = Workbooks.Open("C:\Data\TestFile.xlsx")
End Sub

El error sigue siendo 1004.

Error 1004 Objeto No Encontrado

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples