2012-12-13 125 views
0

Excel VBA:我有一個任務,根據文本文件中給出的輸入來修改少量列的背景顏色。我能夠使用十六進制顏色做到這一點。現在我有要求以簡單的英文支持顏色。 文本文件現在有這樣VBA:將顏色設置爲Excel列,從文本文件導入的顏色

columnname1,red 
columnname2,green 

數據所以我要這個「紅」映射到colorConstant 3號,使其工作。如果我需要允許所有支持的顏色 Check here,我是否需要爲它們全部編寫IF ELSE。有沒有簡單的方法呢?

+0

什麼'選擇Case'? –

+0

感謝您的回覆。我相信這沒有什麼區別。與if語句相比,它可以減少一些行。有沒有一種方法可以將它設置爲.color = rgb&「Red」。我看到rgbRed是一個顏色常量。 – Venkatesh

+0

我會創建一個顏色與索引的查找表並使用它。沒有簡單的方法來創建常量名稱的字符串版本並將其轉換爲常量的值。 –

回答

0

你可以使用一個集合存儲映射:

Public indexOf As Collection 

Sub map(color As String, index As Integer) 
    Call indexOf.Add(index, color) 
End Sub 

Sub init() 
    Set indexOf = New Collection 

    map "red", 3 
    map "green", 4 
    map "blue", 5 
End Sub 

Sub test() 
    init 

    [A1].Interior.ColorIndex = indexOf("red") 
    [A2].Interior.ColorIndex = indexOf("green") 
    [A3].Interior.ColorIndex = indexOf("blue") 
End Sub 
相關問題