我的问题是:将Excel范围从一种货币格式(USD)转换为另一种(EUR)格式,反之亦然。
Excel中的USD格式看起来像123,456.00
Excel中的EUR格式为123 456,00
其中,在USD值中,逗号是千分隔符,.是小数点,在EUR值中,空格是千分隔符,逗号,是小数点。
我尝试过用VBA编写代码,但在这方面我还是个新手。
在构建用于Excel电子表格的VBA宏代码方面有什么帮助吗?
发布于 2015-03-12 20:33:04
这个UDF将完成这项工作。复制并粘贴到模块中:
Function ConvertUSDToEUR(Amount As Range) As String
Dim TempStr As String: TempStr = Amount.Value
TempStr = Replace(TempStr, ",", " ")
TempStr = Replace(TempStr, ".", ",")
ConvertUSDToEUR = TempStr
End Function输出:

发布于 2015-03-12 20:56:42
使用A1中的值,在B1中输入:
=TEXT(A1,"#,##0.00")在C1中输入:
=SUBSTITUTE(SUBSTITUTE(B1,","," "),".",",")例如:

备注:
也可以“就地”转换这些值,但这需要VBA。
EDIT#1:
这里有两个宏可以“就地”改变格式。因此,结果仍然是数字,但外观会发生变化。假设我们有一个公式数列表(而不是)

选择这些值并运行此宏:
Sub MakeUS()
Dim r As Range
For Each r In Selection
r.NumberFormat = "#,##0.00"
Next r
End Sub生产:

和这个宏:
Sub MakeEUR()
Dim r As Range, v1 As String, v2 As String, DQ As String
DQ = Chr(34)
For Each r In Selection
v1 = Format(r.Value, "#,##0.00")
v2 = Replace(Replace(v1, ",", " "), ".", ",")
r.NumberFormat = DQ & v2 & DQ & ";;;"
Next r
End Sub生产:

如果该列包含公式,则方法将略有不同。
https://stackoverflow.com/questions/29009128
复制相似问题