格式为不同的货币

时间:2018-02-16 03:42:04

标签: excel format currency

我有一列作为奖金金额(格式化为数字),另一列有货币类型 - 可能是美元,欧元,英镑,新台币,印度卢比等。 我需要一种方法来连接两列并将其格式化为货币,以便它可以用于数值计算。货币可以是符号或名称USD。

EG。

Amount   Currency    Should be
5000      USD         USD 5000 OR $ 5000
6000      GBP         GBP 6000 OR (Symbol) 6000

"应该是"列不能是文本。我需要使用此列在计划上显示,然后在计算中使用。

我尝试连接为字符串,然后将该列格式化为Currency。但是虽然格式表示货币,但它仍然是文本,任何计算都会出错。

1 个答案:

答案 0 :(得分:1)

您需要自定义数字格式。

dim rw as long
with worksheets("sheet1")
    for rw = 2 to .cells(.rows.count, "A").end(xlup).row
        .cells(rw, "C") = .cells(rw, "A").value2
        select case lcase(.cells(rw, "B").value2)
            case "usd"
                .cells(rw, "C").numberformat = "\U\S\D 0"
            case "eur"
                .cells(rw, "C").numberformat = "\E\U\R 0"
            case "gpd"
                .cells(rw, "C").numberformat = "\G\P\D 0"
            case "twd"
                .cells(rw, "C").numberformat = "\T\W\D 0"
            case "inr"
                .cells(rw, "C").numberformat = "\I\N\R 0"
        end select
    next rw
end with

通过一系列条件格式规则可以实现更加动态的方法。

with worksheets("sheet1").range(c:c)
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$B1=""USD"""
    .FormatConditions(.FormatConditions.count).numberformat = "\U\S\D 0"
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$B1=""EUR"""
    .FormatConditions(.FormatConditions.count).numberformat = "\E\U\R 0"
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$B1=""GBP"""
    .FormatConditions(.FormatConditions.count).numberformat = "\G\B\P 0"
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$B1=""TWD"""
    .FormatConditions(.FormatConditions.count).numberformat = "\T\W\D 0
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$B1=""INR"""
    .FormatConditions(.FormatConditions.count).numberformat = "\I\N\R 0"
end with