Uma família de softwares de planilhas da Microsoft com ferramentas para analisar, criar gráficos e comunicar dados.
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.