首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >货币格式转换

货币格式转换
EN

Stack Overflow用户
提问于 2015-03-12 19:55:57
回答 2查看 1.2K关注 0票数 0

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

Excel中的USD格式看起来像123,456.00

Excel中的EUR格式为123 456,00

其中,在USD值中,逗号是千分隔符,.是小数点,在EUR值中,空格是千分隔符,逗号,是小数点。

我尝试过用VBA编写代码,但在这方面我还是个新手。

在构建用于Excel电子表格的VBA宏代码方面有什么帮助吗?

EN

回答 2

Stack Overflow用户

发布于 2015-03-12 20:33:04

这个UDF将完成这项工作。复制并粘贴到模块中:

代码语言:javascript
复制
Function ConvertUSDToEUR(Amount As Range) As String
Dim TempStr As String: TempStr = Amount.Value
TempStr = Replace(TempStr, ",", " ")
TempStr = Replace(TempStr, ".", ",")
ConvertUSDToEUR = TempStr
End Function

输出:

票数 0
EN

Stack Overflow用户

发布于 2015-03-12 20:56:42

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

代码语言:javascript
复制
=TEXT(A1,"#,##0.00")

C1中输入:

代码语言:javascript
复制
=SUBSTITUTE(SUBSTITUTE(B1,","," "),".",",")

例如:

备注:

也可以“就地”转换这些值,但这需要VBA。

EDIT#1:

这里有两个宏可以“就地”改变格式。因此,结果仍然是数字,但外观会发生变化。假设我们有一个公式数列表(而不是)

选择这些值并运行此宏:

代码语言:javascript
复制
Sub MakeUS()
    Dim r As Range
    For Each r In Selection
        r.NumberFormat = "#,##0.00"
    Next r
End Sub

生产:

和这个宏:

代码语言:javascript
复制
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

生产:

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29009128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档