Precisamos primeiro identificar o personagem mal-intencionado e depois removê-lo.
Primeiro, coloque a seguinte função definida pelo usuário em um módulo padrão:
Public Function WhatsIn(s As String) As String
Dim msg As String, i As Long, L As Long
L = Len(s)
msg = L & vbCrLf
For i = 1 To L
msg = msg & i & " " & AscW(Mid(s, i, 1)) & vbCrLf
Next i
WhatsIn = msg
End Function
A função nos diz exatamente o que uma célula contém. Dá:
- o número de caracteres
- para cada caractere, o valor unicode
Aqui está um exemplo:
NóssabemosquantoscaracteresoC2contémesabemosocódigoASCIIparacadacaractere.
FunçõesDefinidaspeloUsuário(UDFs)sãomuitofáceisdeinstalareusar:
- ALT-F11exibeajaneladoVBE
- ALT-IALT-Mabreumnovomódulo
- coleomaterialefecheajaneladoVBE
Sevocêsalvarapastadetrabalho,aUDFserásalvacomela.SevocêestiverusandoumaversãodoExcelposteriora2003,deverásalvaroarquivocomo.xlsmemvezde.xlsx
PararemoveroUDF:
- abrirajaneladoVBEcomoacima
- limpeocódigo
- fecheajaneladoVBE
ParausaroUDFdoExcel:
=WhatsIn(A1)
Parasabermaissobremacrosemgeral,consulte:
e
e para detalhes sobre UDFs, consulte:
As macros devem estar ativadas para que isso funcione!
Quando soubermos o número ASCII, execute uma macro como:
Sub KleanUp()
Cells.Replace ChrW(166), ""
End Sub
onde substituiríamos o 166 com o número real.