Excel中的货币

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

例如,如果单元格A1包含"EU"那么单元格A2将是"€ 5.00" (如果计算是3 + 2),并且如果单元格A1中的内容将被更改为"GB"那么将在A2中显示£ 5.00

在VBA中可以做到这一点吗? 我宁愿不要做一个简单的IF语句。

你当然可以! 使用货币值在您的范围上使用条件格式。 这是我在testing中完成的

  1. select您的“金额”范围内的第一个单元格,然后单击条件格式 – >新规则。

  2. select“使用公式来确定要格式化的单元格”

  3. 在框中键入=if([Cell w/ Country] = "USA", 1, 0 ) 。 请注意,[单元瓦特/国家]是指示货币types的任何单元格。 在我的例子中,公式是=if($A6="USA", 1, 0) 。 [密切关注单元格引用$A6 – 您希望公式适用于整个列(在本例中),所以请勿input$A$6 ]

  4. input公式后,点击“格式”button。

  5. 点击“号码”选项卡,然后在“类别”列表中select“货币”

  6. 使用“符号”下拉菜单,select与您刚刚创build的规则对应的符号 – 在本例中$ ,然后单击“确定”。

  7. 最后,您将留下规则pipe理器窗口。 您将要select规则将应用于的范围。 input范围,或单击范围select器button并突出显示范围。 然后,单击确定。

以下是一些可能有用的截图:

在这里输入图像说明

在这里输入图像说明

在这里输入图像说明

交换国家,符号改变。

在这里输入图像说明

如果只有一个单元,那么一个非常短的macros就可以做到。 只需在代码中更改自定义格式: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 

你不需要VBA这个 – 只是好的条件格式。 select你的A2单元格,进入首页 – >条件格式。 然后点击“新build规则” – >“使用公式确定要格式化的单元格”。

对于英镑格式,使用公式=$A$1="GB" ,然后点击“格式”,转到上方的“数字”,select“货币”,然后find英镑符号。 点击“确定”完成。 你走了!

对于欧元部分,重复上述操作,而是使用=$A$1="EU"并在货币中find欧元符号。