conversão do tipo de variáveis

Clovis Ferrari 0 Pontos de reputação
2026-09-15T00:47:59.1433333+00:00

desejo extrair números dígito a dígito de uma váriável para armazenar em outras variáveis no Excel VBA e recebo a mensagem de tipos incompátíveis.

Microsoft 365 e Office | Excel | Para uso doméstico | Windows
0 comentários Sem comentários

1 resposta

Classificar por: Mais útil
  1. Ian-T 15,695 Pontos de reputação Equipe Externa da Microsoft Moderador
    2026-09-15T05:50:36.8833333+00:00

    Esta resposta foi traduzida automaticamente e pode conter pequenos erros gramaticais ou frases incomuns. Agradecemos a sua compreensão.

    Olá @Clovis Ferrari

    O erro "Type mismatch" (Erro 13) geralmente ocorre porque o código está atribuindo texto, um valor de erro do Excel ou um valor vazio a uma variável numérica.

    Primeiro, converta o valor da célula em texto, extraia os dígitos e, só então, converta o resultado em um número:

    Sub ExtractDigits()
     Dim sourceValue As Variant
     Dim result As String
     Dim i As Long
     Dim ch As String
     sourceValue = Range("A1").Value
     If IsError(sourceValue) Or IsEmpty(sourceValue) Then Exit Sub
     For i = 1 To Len(CStr(sourceValue))
     ch = Mid$(CStr(sourceValue), i, 1)
     If ch Like "#" Then
     result = result & ch
     End If
     Next i
     If Len(result) > 0 Then
     Range("B1").Value = result
     'Use CLng(result) only if a numeric value is required.
     End If
    End Sub
    

    Manter o resultado como uma String é mais seguro se os dígitos extraídos puderem conter zeros à esquerda ou exceder o intervalo do tipo Long. Verifique também declarações como:

    Dim x As String, y As String
    

    No VBA, a instrução Dim x, y As String declara apenas y como String, enquanto x é definido como Variant. Um erro de incompatibilidade de tipo (type mismatch) ocorre quando um valor não pode ser atribuído ou convertido para o tipo declarado da variável.

    Se o erro persistir, selecione a opção de depuração (Debug) quando ela aparecer e compartilhe a linha destacada, juntamente com as declarações de variáveis ​​e um exemplo de valor de entrada.

    Espero que isso ajude; sinta-se à vontade para me dar um retorno.

    Esta resposta foi útil?


Sua resposta

As respostas podem ser marcadas como ‘Aceitas’ pelo autor da pergunta e ‘Recomendadas’ pelos moderadores, o que ajuda os usuários a saber a resposta que resolveu o problema do autor.