
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.