Objeto VBA obrigatório

Objeto necessário no Excel VBA

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, então é muito fácil consertá-los sem perder tempo. Um desses erros na codificação VBA é “Object Required”.

Se você se lembra, enquanto aprende variáveis ​​e atribui 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, obteríamos a mensagem de erro do VBA como “Objeto necessário” . Portanto, como um novo codificador, é comum entrar em pânico nessas situações porque, no nível inicial, o iniciante não consegue encontrar a causa para este 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.

Você pode baixar este modelo de Excel obrigatório de objeto VBA aqui - Modelo de Excel obrigatório de objeto VBA

Para obter um exemplo, veja 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 "Objeto" são atribuídos à variável, precisamos usar a palavra-chave "Definir" para atribuir a referência do objeto à variável, portanto, nas próximas duas linhas, usando a palavra-chave "Definir", atribuí o 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 “Definir” 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 “Object Required” . 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 dado 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ê executa 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, encontrou 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, então obteremos o erro Object Required para palavras variáveis ​​com erros ortográficos e se Option Explicit estiver habilitado, obteremos o erro de variável não definida para palavras variáveis ​​com erros ortográficos.