Ao executar o script, está aparecendo esse erro, segue a imagem abaixo, precisando de uma ajuda para entender e solucionar.
Erro Object variable not set
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
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