Altere os períodos para vírgulas e vice-versa em UDF

0

Eu tenho este UDF do Excel para excluir todos os caracteres não numéricos de uma célula, exceto pontos e vírgulas; Mas antes de limpar meu número, eu gostaria de mudar todas as vírgulas para pontos e vice-versa. Não tenho ideia de onde fazer essa alteração no meu código. Obrigado

Function cleannumber(texto As String) As String 
Dim volta As String 
Dim pedaco As String 

volta = "" 
For i = 1 To Len(texto) 
   pedaco = Mid(texto, i, 1) 
   If pedaco >= "0" And pedaco <= "9"  Or pedaco = “,” Or pedaco =”.” Then volta = volta & pedaco 
Next i 
cleannumber = volta 
End Function
    
por Emanuel 12.01.2016 / 16:30

2 respostas

1

Antes da declaração If :

pedaco = Replace(pedaco, ".", "whatever")
pedaco = Replace(pedaco, ",", ".")
pedaco = Replace(pedaco, "whatever", ",")
    
por 12.01.2016 / 17:08
0

Código modificado:

Function cleannumber(texto As String) As String 
Dim volta As String 
Dim pedaco As String 

volta = "" 
For i = 1 To Len(texto) 
   pedaco = Mid(texto, i, 1) 

   // Add the below line
   pedaco = Replace(pedaco, ",", ".")

   If pedaco >= "0" And pedaco <= "9"  Or pedaco = “,” Or pedaco =”.” Then volta = volta & pedaco 
Next i 
cleannumber="'" & volta
End Function
    
por 12.01.2016 / 17:51