Este caractere " " (que não fica visível depois que eu salvo este comentário). Parecem dois colchetes unidos, tocando-se para formar um retângulo alto. []
Uma planilha Excel exportada do Filemaker (versão antiga) causa um erro e interrompe a importação em uma determinada linha que possui um caractere recorrente.
Só consigo ver o caractere estranho quando copio/colo o conteúdo da célula no Wordpad. A linha contém 2 tags de marcação de quebra de linha invisíveis e entre elas está . Sempre que isso acontece tenho que editar o conteúdo no Wordpad, colar e aí funciona. Continua aparecendo a cada poucas linhas.
Segunda questão. Existe uma maneira de pesquisar isso no Excel e excluir todos eles?
Responder1
Precisamos primeiro identificar o personagem malfeitor 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:
Sabemos quantos caracteres são celularesC2contém e sabemos o código ASCII para cada caractere.
Funções definidas pelo usuário (UDFs) são muito fáceis de instalar e usar:
- ALT-F11 abre a janela VBE
- ALT-I ALT-M abre um novo módulo
- cole o material e feche a janela do VBE
Se você salvar a pasta de trabalho, a UDF será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx
Para remover a UDF:
- abra a janela VBE como acima
- limpar o código
- feche a janela do VBE
Para usar a UDF do Excel:
=O que está em(A1)
Para saber mais sobre macros em geral, consulte:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
e
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
e para obter detalhes sobre UDFs, consulte:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
As macros devem estar habilitadas para que isso funcione!
Depois de sabermos o número ASCII, execute uma macro como:
Sub KleanUp()
Cells.Replace ChrW(166), ""
End Sub
onde substituiríamos o166com o número real.