MS Excel localizar e substituir macro

0

Eu escrevi uma macro para remover caracteres especiais em uma folha com base nos valores ASCII, mas o problema é que ela está substituindo o conteúdo da célula. Por exemplo, p;j;h , que deve se tornar p,j,h , está se tornando ,, (faltando os dados). Preciso incluir declarações adicionais ou de que outra forma ajustar meu código?

sub specialcharecters()

Dim i As Long

For i = 32 To 43
    Selection.Replace what:=Chr(i), replacement:=", ", LookAt:=xlPart, SearchOrder:= _
       xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next i

     END sub
    
por william 17.10.2012 / 18:35

1 resposta

2

Eu passei pelo seu código e parece que o culpado é Chr(42) , que corresponde ao símbolo * . Quando o Excel encontra isso, está tratando isso como um curinga e substituindo todo o texto. Se você adicionar uma instrução if simples para pular 42, ela passará pelo primeiro loop For sem causar os problemas observados. Você precisará fazer isso novamente para Chr(63) (o ? ) ou ele retornará uma saída estranha novamente. Uma vez que ambos são contabilizados, funcionou muito bem para mim.

    
por 17.10.2012 / 19:31