我的问题:将Excel范围从货币格式(USD)转换为另一种(EUR),反之亦然。
Excel中的USD格式看起来像123,456.00
Excel中的EUR格式如123 456,00
其中in USD值逗号是千位分隔符,.
是小数点
和
in EUR值space是千位分隔符,逗号,
是小数点。
我在VBA尝试了一些编码,但我是这方面的新手。
有关构建VBA宏代码以便在Excel电子表格中使用的任何帮助吗?
答案 0 :(得分:0)
这个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
输出:
答案 1 :(得分:0)
使用 A1 中的值,在 B1 中输入:
=TEXT(A1,"#,##0.00")
并在 C1 中输入:
=SUBSTITUTE(SUBSTITUTE(B1,","," "),".",",")
例如:
注意:强>
也可以转换值#34;到位",但这需要 VBA。
修改#1:强>
这里有两个宏将改变格式"就位#34;。因此结果仍然是数字,但外观会发生变化。假设我们有一个数字列表 (不是公式):
选择值并运行此宏:
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
生产:
如果列包含公式,则方法会略有不同。