Objeto VBA obrigatório - Como corrigir o erro de objeto necessário no Excel VBA?

Objeto necessário no Excel VBA

Os erros são parte integrante da linguagem de codificação, mas o verdadeiro gênio está em encontrar o erro e consertá-los. A primeira etapa para corrigir esses erros é descobrir por que esses erros estão ocorrendo. Se você puder descobrir por que esses erros estão ocorrendo, será muito fácil consertá-los sem suar a camisa. Um desses erros na codificação VBA é "Objeto necessário".

Se você se lembra, enquanto aprendemos variáveis ​​e atribuímos tipos de dados a essas variáveis, também temos tipos de dados “Objeto”. Quando o tipo de dados do objeto é atribuído, e se esse objeto não existe na planilha ou pasta de trabalho que estamos nos referindo, receberíamos a mensagem de erro do VBA como “Objeto necessário”. Portanto, como um novo codificador, é comum afirmar que há pânico nessas situações, pois, no nível inicial, um iniciante não consegue encontrar a causa desse erro.

Por que ocorre um erro de objeto obrigatório? (e como consertar isso?)

Ok, são necessários dois ou três exemplos para realmente entender por que esse erro ocorre e como corrigi-lo.

Por exemplo, observe o código abaixo.

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

Deixe-me explicar para você o código acima.

Eu declarei três variáveis, e as primeiras duas variáveis ​​referem-se aos objetos “Workbook” e “Worksheet”. A terceira variável se refere ao tipo de dados “Data”.

Quando os tipos de dados “Object” são atribuídos à variável, precisamos usar a palavra “Set” chave para atribuir a referência do objeto à variável, portanto, nas próximas duas linhas, usando a palavra-chave “Set”, I atribuí a referência de “ThisWorkbook” à variável “Wb” porque esta variável contém o tipo de dados do objeto como “Workbook” e para a variável “Ws” atribuí o objeto worksheet da planilha “Data” neste workbook.

Definir Wb = ThisWorkbook
Definir Ws = ThisWorkbook.Worksheets ("Dados")
  • Na próxima linha para a variável de tipo de dados “Data”, também usei a palavra-chave “Set” para atribuir o valor do valor da célula A1 nesta pasta de trabalho (Wb) e na planilha “Dados” (Ws).
Definir MyToday = Wb.Ws.Cells (1, 1)
  • Na próxima linha, estamos mostrando o valor da variável “MyDate” do valor da célula A1 na caixa de mensagem em VBA.
MsgBox MyToday
  • Ok, vamos executar este código e ver o que obtemos como resultado.

Como você pode ver acima, ele mostra a mensagem de erro do VBA como “Objeto necessário”. Ok, é hora de examinar por que estamos recebendo essa mensagem de erro.

  • Na imagem da mensagem de erro acima na seção de código, ao mostrar a mensagem de erro, ela destacou a parte do erro do código com a cor azul.
  • Portanto, a questão permanece é por que recebemos esse erro. A primeira coisa que precisamos ver é esse tipo de dado variável em particular. Volte para a linha de código anterior, onde atribuímos o tipo de dados à variável “MyDate”.
  • Atribuímos o tipo de dados variável como "Data" e agora voltamos à linha de erro.

Nesta linha, usamos a palavra-chave “Set”, enquanto nosso tipo de dados não é o tipo de dados “Object”. Portanto, no momento em que o código VBA vê a palavra-chave “Set”, ele assume que é um tipo de dados de objeto e diz que requer uma referência de objeto.

Portanto, o resultado final é a palavra-chave "Definir", usada para se referir apenas às variáveis ​​de objeto, como planilha, pasta de trabalho, etc. …

Exemplo 1

Agora dê uma olhada no código abaixo.

Código:

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

No código acima, usamos a função de planilha “SUM” para obter o total dos valores das células de A1 a A100. Quando você executar este código, encontraremos o erro abaixo.

Opa !! Ele diz, “Erro em tempo de execução '424': Objeto necessário.

Agora, vamos examinar o código de perto.

Em vez de usar "Aplicativo", usamos erroneamente "Aplicativo1", portanto, foi encontrado o erro "Objeto necessário" no código VBA.

Se a palavra “Option Explicit” estiver habilitada, obteremos o erro “Variable Not Defined”.

Coisas para lembrar

  • Objeto obrigatório significa que a referência do tipo de dados do objeto precisa ser precisa.
  • Quando a opção palavra explícita não está habilitada na codificação, obteremos o erro Object Required para palavras variáveis ​​com erros ortográficos e, se Option Explicit estiver habilitado, obteremos o erro variable not defined para palavras variáveis ​​com erros ortográficos.

Artigos interessantes...