Excel 文本转数字不会改变格式

Excel 文本转数字不会改变格式

我在 Excel 中有一个宏,它正在尝试将文本转换为数字(货币)列。

单元格中的值是类似这样的文本“USD 8,765.43”,目标是获得类似这样的货币值“$8.765,43”

所以我基本上有这个宏,它可以删除空格,然后替换所有内容以使其看起来像我需要的,然后将单元格的格式更改为数字。

列(“H:H”).选择

选择.替换内容:=“”,替换:=“”,LookAt:=xlPart,_ SearchOrder:=xlByRows,MatchCase:=False,SearchFormat:=False,_ ReplaceFormat:=False

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"

所有更改均正确完成,只是数字显示如下:8.765,43,但既不与其他数字相加,也不是“货币”,直到我进入单元格,并按下数字末尾的“ENTER”键,然后它才会转换为数字,计算总和并出现“$”符号。

谢谢,

答案1

在“USD 8,765.43”中,USD 和数字之间有一个空格,该空格仍会存在于末尾,并阻止 Excel 将其识别为数字。

更改你的第一个替换,以将其删除:

选择.替换内容:=“USD”,代表...

答案2

尝试将所选中的每个单元格乘以 1 。它会强制 Excel 重新计算并应用格式:

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

把这段代码放在你的

选择.NumberFormat = “[$$-409]#,##0.00”

相关内容