2014-01-09 206 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格式字符串...