Excel中的货币

时间:2015-09-02 14:13:11

标签: excel excel-vba currency vba

我想根据行中另一个单元格中的值更改单元格中的货币符号。

例如,如果单元格A1包含"EU",则单元格A2将为"€ 5.00"(如果计算为3 + 2),并且单元格A1中的内容将更改为{{1} }然后"GB"将显示在A2。

可以在VBA中执行此操作吗?我不想做一个简单的IF声明。

3 个答案:

答案 0 :(得分:4)

你当然可以!利用货币值在您的范围内使用条件格式。以下是我在测试中完成此操作的方法......

  1. 选择"金额"中的第一个单元格范围,然后单击条件格式 - >新规则。

  2. 选择"使用公式确定要格式化的单元格"

  3. 在框中输入=if([Cell w/ Country] = "USA", 1, 0 )。注意,[Cell w / Country]是指示货币类型的任何单元格。在我的示例中,公式为=if($A6="USA", 1, 0)。 [密切关注单元格引用$A6 - 您希望公式适用于整个列(在此示例中),因此请勿输入$A$6。]

  4. 输入公式后,点击"格式"按钮。

  5. 点击"数字"选项卡并选择" Currency"在类别列表中

  6. 使用“符号”下拉列表,选择与您刚创建的规则对应的符号 - 在本例中为$,然后单击“确定”。

  7. 最后,您将离开规则管理器窗口。您将要选择规则将应用的范围。输入范围,或单击范围选择器按钮并突出显示范围。然后,单击“确定”。

  8. 以下是一些可能有用的屏幕截图:

    enter image description here

    enter image description here

    enter image description here

    在国家/地区之间切换,符号会发生变化。

    enter image description here

答案 1 :(得分:0)

如果它仅适用于一个单元格,则非常短的宏将执行此操作。 只需在代码中更改自定义格式:  Sub Macro2()

   If Range("a1").Value = "EU" Then Range("A2").Select: Selection.NumberFormat = """€""#,##0"
If Range("a1").Value = "GB" Then Range("A2").Select: Selection.NumberFormat = """£""#,##0"


End Sub

答案 2 :(得分:0)

你不需要VBA - 只是好条件格式化。选择A2单元格后,转到Home - >条件格式。然后点击“新规则” - > “使用公式确定要格式化的单元格。”

对于GBP格式,请使用公式=$A$1="GB",然后单击“格式”,转到顶部的“数字”,选择“货币”,然后只需找到GBP符号。完全点击“确定”。你去吧!

对于EUR部分,重复上述步骤,而是使用=$A$1="EU"并在货币中找到EUR符号。