Excel中的货币
我想根据另一个单元格中的值在行中更改单元格中的货币符号。
例如,如果单元格A1包含"EU"
那么单元格A2将是"€ 5.00"
(如果计算是3 + 2),并且如果单元格A1中的内容将被更改为"GB"
那么将在A2中显示£ 5.00
。
在VBA中可以做到这一点吗? 我宁愿不要做一个简单的IF语句。
你当然可以! 使用货币值在您的范围上使用条件格式。 这是我在testing中完成的
-
select您的“金额”范围内的第一个单元格,然后单击条件格式 – >新规则。
-
select“使用公式来确定要格式化的单元格”
-
在框中键入
=if([Cell w/ Country] = "USA", 1, 0 )
。 请注意,[单元瓦特/国家]是指示货币types的任何单元格。 在我的例子中,公式是=if($A6="USA", 1, 0)
。 [密切关注单元格引用$A6
– 您希望公式适用于整个列(在本例中),所以请勿input$A$6
] -
input公式后,点击“格式”button。
-
点击“号码”选项卡,然后在“类别”列表中select“货币”
-
使用“符号”下拉菜单,select与您刚刚创build的规则对应的符号 – 在本例中
$
,然后单击“确定”。 -
最后,您将留下规则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欧元符号。