Excel VBA para remover caracteres ocultos indesejados
Você já se deparou com valores no Excel que parecem normais, mas não funcionam corretamente em fórmulas ou ao importar dados? É possível que esses valores contenham caracteres ocultos que dificultam o uso da planilha.
Este tutorial mostra como criar uma função personalizada em VBA que identifica e remove esses caracteres, deixando suas células limpas e funcionais.
Vídeo com demonstração prática
Recomendação de segurança
Sempre crie uma frase de segurança única para jogos, @CanalQb e qualquer outra aplicação desconhecida. Evite usar sua carteira principal nesses casos.
Função VBA para uso direto em células
Abra o editor VBA no Excel (Alt + F11), insira um novo módulo e cole o seguinte código:
Function findInvisChar(sInput As String) As String
Dim sSpecialChars As String
Dim i As Long
Dim sReplaced As String
Dim ln As Integer
sSpecialChars = "" & Chr(1) & Chr(2) & Chr(3) & Chr(4) & Chr(5) & Chr(6) & Chr(7) & _
Chr(8) & Chr(9) & Chr(10) & Chr(11) & Chr(12) & Chr(13) & Chr(14) & Chr(15) & _
Chr(16) & Chr(17) & Chr(18) & Chr(19) & Chr(20) & Chr(21) & Chr(22) & Chr(23) & _
Chr(24) & Chr(25) & Chr(26) & Chr(27) & Chr(28) & Chr(29) & Chr(30) & Chr(31) & _
Chr(32) & ChrW(&HA0)
For i = 1 To Len(sSpecialChars)
ln = Len(sInput)
sInput = Replace$(sInput, Mid$(sSpecialChars, i, 1), "")
If ln <> Len(sInput) Then
sReplaced = sReplaced & Mid$(sSpecialChars, i, 1)
End If
Next
MsgBox sReplaced & " These were identified and removed"
findInvisChar = sInput
End Function
Depois de colar o código, use a função em uma célula como:
=findInvisChar(A1)
Onde A1 é a célula com o conteúdo que você deseja limpar.
Remoção direta em variáveis (modo avançado)
Para programadores que manipulam strings no VBA, você pode aplicar a mesma lógica diretamente em variáveis:
Dim sInput As String
Dim sSpecialChars As String
Dim sReplaced As String
Dim ln As Integer
Dim i As Long
sInput = variavelpracorrigir
sSpecialChars = "" & Chr(1) & Chr(2) & ... & ChrW(&HA0)
For i = 1 To Len(sSpecialChars)
ln = Len(sInput)
sInput = Replace$(sInput, Mid$(sSpecialChars, i, 1), "")
If ln <> Len(sInput) Then
sReplaced = sReplaced & Mid$(sSpecialChars, i, 1)
End If
Next
variavelcorrigida = sInput
Considerações e recomendações adicionais
- Utilize o Microsoft Excel 2016 ou mais recente para maior estabilidade com macros.
- Evite colar dados diretamente da internet sem filtragem.
- Faça testes em cópias da planilha antes de aplicar em arquivos importantes.
- Para manipulação massiva de dados, use Power Query integrado ao Excel.
Este conteúdo é para fins educacionais. A utilização de scripts VBA é de responsabilidade do usuário. Sempre faça backup dos dados antes de aplicar qualquer macro.

Comentários
Comente só assim vamos crescer juntos!