2010-07-26 191 views
0

我有一份工作中使用的電子表格,用於跟蹤返回的合同。我設置了一個顏色鍵,以便我可以快速瀏覽表單,查看哪些合同仍然需要退回給我們以及該帳戶所屬的哪位客戶經理。使用VBA在Excel中着色一系列單元格

客戶經理的首字母縮寫列在A列;從那裏我想根據誰在A中輸入姓名的首字母來爲該行中的單元格範圍着色(A:H)。現在,我有以下代碼,但我不喜歡電子表格的樣子整行彩色:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
If Target.Column <> 1 Then Exit Sub 

Select Case Target 

Case "MKH" 
Target.EntireRow.Interior.ColorIndex = 36 

Case "MAH" 
Target.EntireRow.Interior.ColorIndex = 39 

Case "MJM" 
Target.EntireRow.Interior.ColorIndex = 34 

Case "JVE" 
Target.EntireRow.Interior.ColorIndex = 35 

Case Else 
Target.EntireRow.Interior.ColorIndex = 0 

End Select 

PS我們辦公室的大多數工作人員仍在使用Office 2003,因此條件格式不適用。

回答

4

如果你的問題是如何着色行,而不是整個一個的一部分,這應該工作:

Range("A" & Target.Row, "H" & Target.Row).Interior.ColorIndex = 10 
+0

是的,這工作!非常感謝 :-) – JTone 2010-07-26 15:35:31

0

取決於你有多少行有,你的計算機的速度,版本的Excel的等等。 事件通常會減慢工作表的速度,並在很大程度上降低其他VBA代碼的速度。

對於你想要做的事「條件格式」總是一個更好的選擇。

相關問題