O tipo de '<nome de variável>' é ambíguo porque os limites do loop e a variável STEP não se estende ao mesmo tipo
Seu código contém um loop For...Next no qual o computador não pode inferir um tipo de dados para a variável de controle de loop porque as condições seguintes 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.
Mais de uma conversão possível existem entre os tipos de dados.
Não há um melhor tipo entre os candidatos, então a escolha do tipo para a variável de controle de loop é ambígua.
Por exemplo, o seguite loop possui um limite de loop do tipe Integer e um do tipo UInteger:
Dim m As Integer = 1
Dim n As UInteger = 10
' Not valid.
' For i = m To n
' Loop processing.
' Next
Há uma conversão possível entre Integer e UInteger, e uma possível entre UInteger e Integer, mas ambos são conversões reduzidas e, então, nenhuma das duas é a melhor escolha.
No próximo exemplo, uma terceira variável do tipo Double é adicionada.Tanto Integer quanto UInteger possuem conversões de expansão padrão para Double, que faz coversão para a melhor escolha Double.Inferência de tipos designa à variável de controle de loop i o tipo de dados Double.
Dim stepVar As Double = 1
' Valid.
For i = m To n Step stepVar
' Loop processing.
Next
ID de erro: BC30983
Para corrigir este erro
Explicitamente converte uma das variáveis para um tipo para o qual os outros possuem uma conversão de expansão, por exemplo:
For i = m To CLng(n)
Use uma cláusula As para especificar o tipo da variável de contrle:
For i As Double = m To n
Consulte também
Conceitos
Conversões explícita e implícita
Conversões Ampliadoras e Redutoras