2014-01-09 152 views
1

我正在寻找一个基于其他单元格的值/文本格式化单元格的Excel中的宏。 I.E:单元格B28是我的货币格式(567)。细胞B27是我想使用的货币,比方说美元。我想要的是,如果B27引用美元,那么B28号码将转换为567美元。基于其他单元格文本的货币格式化(EXCEL)

+0

您想要一次性转换,还是要在单元格B28中输入类似'= myConverter(567,B27)'的东西,并显示“$ 567”?你打算如何表示货币? – Floris

回答

0

您可以通过Home -> Conditional Formatting -> New Rule

enter image description here

应用条件格式选择相关的细胞或细胞,创建一个新的规则,在公式检查,只有当B27等于“USD”应用的格式。

+0

我怀疑这可能很难维护,因为你改变工作表,添加新的货币等。你有一个很好的解决方案吗? – Floris

+0

您必须使用VBA。如果需要以编程方式创建和维护,请参阅此问题:http://stackoverflow.com/questions/13661965/conditional-formatting-using-excel-vba-code – mockinterface

0

您可以在您的工作簿中的模块中创建下面的函数:

Function myConverter(v, r As Range) 

Select Case r.Value 
Case "USD" 
    myConverter = Application.WorksheetFunction.Text(v, "$0") 
    Exit Function 
Case "GBP" 
    myConverter = Application.WorksheetFunction.Text(v, "£0") 
    Exit Function 
' add any other cases you want here... 
Case Else 
' trap "unknown case": you could return "unknown format" or something else 
    myConverter = v 
End Select 

End Function 

现在你可以进入

=myConverter(567, A2) 

其中细胞A2包含USD,并获得

$567 

很显然,你可以用做任何你想做的事情210格式字符串...