Personagem estranho causando erro ao tentar importar planilha do Excel

Personagem estranho causando erro ao tentar importar planilha do Excel

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á:

  1. o número de caracteres
  2. para cada caractere, o valor Unicode.

    Aqui está um exemplo:

insira a descrição da imagem aqui

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:

  1. ALT-F11 abre a janela VBE
  2. ALT-I ALT-M abre um novo módulo
  3. 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:

  1. abra a janela VBE como acima
  2. limpar o código
  3. 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.

informação relacionada