货币格式转换

时间:2015-03-12 11:55:57

标签: excel vba format currency

我的问题:将Excel范围从货币格式(USD)转换为另一种(EUR),反之亦然。

Excel中的USD格式看起来像123,456.00
Excel中的EUR格式如123 456,00

其中in USD值逗号是千位分隔符,.是小数点 和 in EUR值space是千位分隔符,逗号,是小数点。

我在VBA尝试了一些编码,但我是这方面的新手。

有关构建VBA宏代码以便在Excel电子表格中使用的任何帮助吗?

2 个答案:

答案 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

输出:

enter image description here

答案 1 :(得分:0)

使用 A1 中的值,在 B1 中输入:

=TEXT(A1,"#,##0.00")

并在 C1 中输入:

=SUBSTITUTE(SUBSTITUTE(B1,","," "),".",",")

例如:

enter image description here

注意:

也可以转换值#34;到位",但这需要 VBA。

修改#1:

这里有两个宏将改变格式"就位#34;。因此结果仍然是数字,但外观会发生变化。假设我们有一个数字列表 (不是公式)

enter image description here

选择值并运行此宏:

Sub MakeUS()
    Dim r As Range
    For Each r In Selection
        r.NumberFormat = "#,##0.00"
    Next r
End Sub

生产:

enter image description here

和这个宏:

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

生产:

enter image description here

如果列包含公式,则方法会略有不同。