Excel 宏将单元格格式更改为货币

标签 excel currency currency-formatting vba

我有一个文件,其中一列充满了数字,第二列包含每个数字各自的货币。我有美元、欧元、瑞士法郎和英镑

我想创建一个宏,将数字列的格式从数字转换为货币,然后应用第二列中的货币。

这样做的技巧是我希望数字列中仍然有数字,因为数字可以加或减。因此,我不希望对两列进行简单的连接,因为这会使字段成为文本,并且无法在数学方程中使用。

如果您知道怎么做,请帮忙。

谢谢!

最佳答案

我不确定我是否理解您的具体问题,但这将获取 A 列中的所有值,并根据 B 列中的货币值将它们格式化为 C 列中的货币:

Sub Macro1()

Dim cl As Range

For Each cl In Intersect(ActiveSheet.Range("A:A"), ActiveSheet.UsedRange)
   cl.Offset(0, 2).Value = cl.Value
   Select Case cl.Offset(0, 1).Value
      Case "USD"
         cl.Offset(0, 2).NumberFormat = "$#,##0.00"
      Case "EUR"
         cl.Offset(0, 2).NumberFormat = "[$€-2] #,##0.00"
      Case "GBP"
         cl.Offset(0, 2).NumberFormat = "[$£-809]#,##0.00"
      Case "CHF"
         cl.Offset(0, 2).NumberFormat = "[$CHF] #,##0.00"
   End Select

Next cl

End Sub

如果您想更改货币类型,请录制一个宏,在其中将单元格设置为正确的货币,然后根据需要复制并粘贴该数字格式。

关于Excel 宏将单元格格式更改为货币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13382091/

相关文章:

html - 导航到 VBA 中的页面后无法重置 HTML 文档

c# - 从 Excel 文件中删除密码——无需在我的服务器上安装 Excel

excel - 如何用 "<10"替换几列中小于 10 的值?

c# - 格式化 double 值,如货币但不带货币符号 (C#)

c++ - 如果float和double都不准确,那么银行如何进行涉及金钱的准确计算呢?

javascript - 有没有办法在基于区域设置格式化货币时获得一致的输出

apache-flex - Flex 4 中的货币格式化程序(欧元)

ios - 如何用字符串放置货币符号前缀或后缀?

vba - 当单元格失去焦点时,可以测试 Excel 单元格文本的长度吗?

php - 如何通过 PHP Intl(ICU 库)中的货币代码获取货币符号