2015-04-01 121 views
0

我得到了VBA代碼來在Excel文件中填充一些T-SQL查詢數據。在該數據中,一列包含紅色,琥珀色,綠色和N/A值。現在我想要根據這些值(紅色,琥珀色,綠色和白色)的背景顏色。我如何在VBA中做到這一點?使用VBA進行背景色條件格式化?

編輯:我需要像這樣:

id firstname lastname complaint 
1 paul  nixon RED 
2 John  nathon RED 
3 sera  teag  AMBER 
4 CLARE  walker GREEN 

現在我要爲列「投訴」根據單元格的值,背景顏色一樣,如果單元格的值RED我要那個背景色也是紅色等。在VBA代碼中。

+0

[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)。告訴我們你有什麼,我們將幫助解決它。不太可能你會讓某人爲你做。 – FreeMan 2015-04-01 12:54:28

+0

@ FreeMan,感謝您的回覆。只是改變了一下。這可能有助於你理解。謝謝 – GK1960 2015-04-01 13:02:59

+0

您生成了哪些代碼?你在哪裏得到錯誤?同樣,可能不會有人願意爲您編寫代碼,但願意幫助解決特定問題。 – FreeMan 2015-04-01 13:08:12

回答

1

更改單元格的背景顏色也很簡單。確定改變它的顏色是這裏的關鍵步驟。如果你知道這4種顏色是唯一的選擇,我只需要掏出箱子並設置顏色。如果您發現這種顏色增加到更多顏色,您可能需要在「字典」中定義它們,並執行查詢而不是SELECT-CASE構造。

這個簡單的代碼可以用你的例子。您將希望根據您的實際應用更好地定義範圍(可能不是「D2:D5」)並調整顏色。

Sub ColorWithText() 

    Dim cell As Range 

    For Each cell In Range("D2:D5") 
     Select Case UCase(cell.Value) 
      Case "RED" 
       cell.Interior.Color = RGB(255, 0, 0) 
      Case "AMBER" 
       cell.Interior.Color = RGB(255, 191, 0) 
      Case "GREEN" 
       cell.Interior.Color = RGB(0, 255, 0) 
      Case "WHITE" 
       cell.Interior.Color = RGB(255, 255, 255) 
     End Select 
    Next cell 
End Sub 

這是我的Excel實例在代碼運行後的圖片。 image with colors applied

+0

Hi @Byron Wall,In *** For範圍內的每個單元格(「D2:D5」)*。我怎樣才能將範圍D5的值設置爲最大值,因爲我真的不知道會有多少行會出現在結果中。謝謝 – GK1960 2015-04-06 22:33:15

+0

可能有更好的資源解決了如何在各種情況下獲取範圍的最後值。常見模式包括:Range.End(xlDown),Range.SpecialCells(xlCellTypeLastCell),Intersect(Range.EntireColumn,Sheet.UsedRange)。如果你確定你的行數超過2行,並且沒有中斷,那麼最簡單的方法是對於範圍(Range(「D2」),Range(「D2」)。End(xlDown))'中的每個單元格。 .End功能模仿​​鍵盤上的CTRL + (如向下)。這是一個受歡迎的SO線程:http://stackoverflow.com/questions/71180/。 – 2015-04-06 22:44:33

+0

嗨@Byron Wall,謝謝你的解釋。 – GK1960 2015-04-06 23:00:13

相關問題