Erro VBA 1004 - Erro definido pelo aplicativo ou definido pelo objeto

Este tutorial explicará o erro VBA 1004 - Erro definido pelo aplicativo ou definido pelo objeto.

O erro 1004 de tempo de execução do VBA é conhecido como erro definido pelo aplicativo ou definido pelo objeto que ocorre enquanto o código está em execução. Cometer erros de codificação (consulte nosso Guia de tratamento de erros) é parte integrante do aprendizado do VBA, mas saber por que um erro ocorre ajuda a evitar cometer erros na codificação futura.

Erro VBA 1004 - Objeto não existe

Se estivermos nos referindo a um objeto em nosso código, como um nome de intervalo que não foi definido, esse erro pode ocorrer, pois o código VBA não conseguirá encontrar o nome.

12345678 Sub CopyRange ()Dim CopyFrom As RangeDim CopyTo As RangeDefinir CopyFrom = Sheets (1) .Range ("CopyFrom")Definir CopyTo = Sheets (1) .Range ("CopyTo")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesEnd Sub

O exemplo acima irá copiar os valores do intervalo nomeado “CopyFrom” para o intervalo nomeado “CopyTo” - com a condição, é claro, de que esses sejam intervalos nomeados existentes! Se eles não existirem, o Erro 1004 será exibido.

A maneira mais simples de evitar esse erro no exemplo acima é criar os nomes dos intervalos na pasta de trabalho do Excel ou consultar o intervalo no formato tradicional de linha e coluna, por exemplo: Intervalo (“A1: A10”).

Erro VBA 1004 - Nome já utilizado

O erro também pode ocorrer se você estiver tentando renomear um objeto para um objeto que já existe - por exemplo, se estivermos tentando renomear a Planilha1, mas o nome que você está dando à planilha já é o nome de outra planilha.

123 Sub NameWorksheet ()ActiveSheet.Name = "Planilha2"End Sub

Se já tivermos uma Planilha2, o erro ocorrerá.

Erro VBA 1004 - Referência incorreta a um objeto

O erro também pode ocorrer quando você faz referência incorreta a um objeto em seu código. Por exemplo:

12345678 Sub CopyRange ()Dim CopyFrom As RangeDim CopyTo As RangeDefinir CopyFrom = Range ("A1: A10")Definir CopyTo = Range ("C1: C10")Intervalo (CopyFrom) .CopyRange (CopyTo) .PasteSpecial xlPasteValuesEnd Sub

Isso nos dará mais uma vez o Erro 10004

Corrija o código e o erro não será mais mostrado.

12345678 Sub CopyRange ()Dim CopyFrom As RangeDim CopyTo As RangeDefinir CopyFrom = Range ("A1: A10")Definir CopyTo = Range ("C1: C10")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesEnd Sub

Erro VBA 1004 - Objeto não encontrado

Esse erro também pode ocorrer quando estamos tentando abrir uma pasta de trabalho e ela não é encontrada - a pasta de trabalho, neste caso, é o objeto que não foi encontrado.

1234 Sub OpenFile ()Dim wb como pasta de trabalhoDefina wb = Workbooks.Open ("C: \ Data \ TestFile.xlsx")End Sub

Embora a mensagem seja diferente na caixa de erro, o erro ainda é 1004.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave