Tipo de '<nomedavariável>' não pode ser inferido porque o loop corre e a variável de etapa não se amplia ao mesmo tipo
Você escreveu um loop For...Next no qual o compilador não pode inferir tipo e dados para a variável de controle de loop porque as seguintes condições são verdadeiras:
O tipo de dados da variável de controle de loop não está especificada com uma cláusula As.
O loop limita-se e a variável de etapa contém pelo menos do tipos de dados.
Não existe nenhuma conversão padrão entre os tipos de dados.
Por isso, o compilador não pode inferir o tipo de dados de uma variável de controle de loop.
No exemplo a seguir, a variável de etapa é um caractere e os limites do loop são ambos inteiros.Devido ao fato de que não existe conversão padrão entre caracteres e inteiros, este erro é relatado.
Dim stepVar = "1"c
Dim m = 0
Dim n = 20
' Not valid.
' For i = 1 To 10 Step stepVar
' Loop processing
' Next
ID de erro: BC30982
Para corrigir este erro
Altere os tipos dos limites do loop e da variável de etapa como necessário de modo que pelo menos um deles é um tipo para o qual os outros ampliam.No exemplo anterior, altere o tipo de stepVar para Integer.
Dim stepVar = 1
- ou -
Dim stepVar As Integer = 1
Use funções de conversão explícitas para converter os limites do loop e a variável de etapa para os tipos apropriados.No exemplo anterior, aplique a função Val a stepVar.
For i = 1 To 10 Step Val(stepVar) ' Loop processing Next
Consulte também
Conceitos
Conversões explícita e implícita
Conversões Ampliadoras e Redutoras