Excel Text to Number não está mudando o formato

0

Eu tenho uma macro no Excel que está tentando converter o texto para o número (moeda) de uma coluna.

Os valores nas células são textos que se parecem com "USD 8.765,43". O objetivo seria ter um valor de moeda semelhante a este "$ 8.765,43"

Então, basicamente, eu tenho essa macro que remove os espaços em branco e, em seguida, substitui tudo para que pareça o que eu preciso e, em seguida, altere o formato da célula para o número.

Colunas ("H: H"). Selecione

Selection.Replace What:="", Substituição:="", LookAt: = xlPart, _         SearchOrder: = xlByRows, MatchCase: = False, SearchFormat: = falso, _         ReplaceFormat: = falso

Selection.Replace What:="USD", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

    Selection.Replace What:=",", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

Selection.NumberFormat = "[$$-409]#,##0.00"

Todas as alterações são feitas corretamente, exceto que o número aparece assim: 8.765,43, mas não soma com outros números e não é "moeda" até que eu entre na célula, e pressione a tecla "ENTER" no final do número, ele converte em número, soma e aparece o sinal "$".

obrigado,

    
por AlbertoPow 14.12.2015 / 16:22

2 respostas

1

Em "USD 8,765.43" há um espaço em branco entre o USD e o número, que ainda estará por perto no final, e proíbe o Excel de reconhecê-lo como um número.

Altere seu primeiro substituto para que ele também seja removido:

Selection.Replace What:="USD", Rep ...

    
por 14.12.2015 / 16:33
0

Tente multiplicar cada célula da sua seleção por 1. Força o Excel a recalcular e aplicar formatos:

Dim cell As Range 
For Each cell In Selection 
If Not IsError(cell) Then cell = val(cell) * 1 
Next cell

Coloque esse pedaço de código logo após o seu

Selection.NumberFormat="[$$ - 409] #, ## 0.00"

    
por 14.12.2015 / 18:07