Erro Object variable not set

Ao executar o script, está aparecendo esse erro, segue a imagem abaixo, precisando de uma ajuda para entender e solucionar.


image

Você está misturando ou confundindo o uso do For Each…Next com o For…Next.

Dim field
For Each field In Application.GetObject("Dados_Foods.Geral.Rotas_Corte")
    If field.Rotas_Ativas Then
        ' Stuff...
    End If
Next

' ou 

Dim i
For i = 0 To  Application.GetObject("Dados_Foods.Geral.Rotas_Corte").Count - 1
    If Application.GetObject("Dados_Foods.Geral.Rotas_Corte").Item(i).Rotas_Ativas Then
        ' Stuff...
    End If
Next

' ou ainda:
Dim i
i = 0
While i < Application.GetObject("Dados_Foods.Geral.Rotas_Corte").Count
    If Application.GetObject("Dados_Foods.Geral.Rotas_Corte").Item(i).Rotas_Ativas Then
        ' Stuff...
    End If
    i = i + 1
Wend

:pencil2: EDIT: Em tempo, qual o tipo da propriedade Rotas_Ativas? É de fato do tipo Boolean? Alguma chance de ser Nothing ou Object (VarType = 9)?

Pode ser feita uma verificação antes da condicional:

'...
If VarType(field.Rotas_Ativas) = vbBoolean Then
    ' aqui é possível fazer uma comparação (=True é opcional)
    If field.Rotas_Ativas Then
        ' Stuff...
    End If
End If

ou

'...
If IsNumeric(field.Rotas_Ativas) Then
    ' aqui é possível fazer uma comparação (=True é opcional)
    If field.Rotas_Ativas Then 
        ' Stuff...
    End If
End If
1 Like