2008-11-06 150 views
5

Excel在格式菜單下有一個條件格式選項,允許您根據其值更改樣式/顏色/字體/任何單元格。但它只允許三個條件。Excel電子表格中的多個單元格背景顏色

如何根據單元格的值讓Excel顯示說,六種不同的背景單元格顏色? (如果值爲「紅色,請將單元格設爲紅色,如果爲」藍色「,則將單元格設爲藍色)

回答

7

您需要在VBA中編寫一些內容。 Get Around Excels 3 Criteria Limit in Conditional Formatting

這裏見例如

Private Sub Worksheet_Change(ByVal Target As Range) 

Dim icolor As Integer 

    If Not Intersect(Target, Range("A1:A10")) is Nothing Then 

     Select Case Target 

      Case 1 To 5 
       icolor = 6 
      Case 6 To 10 
       icolor = 12 
      Case 11 To 15 
       icolor = 7 
      Case 16 To 20 
       icolor = 53 
      Case 21 To 25 
       icolor = 15 
      Case 26 To 30 
       icolor = 42 
      Case Else 
       'Whatever 
     End Select 

     Target.Interior.ColorIndex = icolor 
    End If 
End Sub 
3

Excel 2007中允許多於三個條件。引用自this Microsoft page

編輯:啊,在鏈接代碼中有一個「功能」:在括號中引用的括號中的處理不正確。這種聯繫是:http://msdn.microsoft.com/en-us/library/bb286672(office.11).aspx

在Excel 2007中 是指定超過 三個條件,重新排序 條件,並有一個以上的 條件決心的能力改變 條件格式的其他好處真正。

否則。恐怕你被描述的那些雜亂的選擇所困住。

1

把它放在VBA項目的模塊中。然後,您可以在工作表中突出顯示一個範圍,然後從「工具」(Tools)>「宏」(Macro)>「宏」(Macro)菜單項中運行子工具,以在選定範圍內對每個單元格着色

Public Sub ColorCells() 

Dim cell, rng As Range 
Dim color As Integer 
Dim sheet As Worksheet 

Application.ScreenUpdating = False 
Application.StatusBar = "Coloring Cells" 

    Set rng = Application.Selection 
    Set sheet = Application.ActiveSheet 

For Each cell In rng.cells 

     Select Case Trim(LCase(cell)) 

      Case "blue" 

       color = 5 

      Case "red" 

       color = 3 

      Case "yellow" 

       color = 6 

      Case "green" 

       color = 4 

      Case "purple" 

       color = 7 

      Case "orange" 

       color = 46 

      Case Else 

       color = 0 
     End Select 

    sheet.Range(cell.Address).Interior.ColorIndex = color 

Next cell 

Application.ScreenUpdating = True 
Application.StatusBar = "Ready" 

End Sub 

如果用戶輸入新的顏色名稱到細胞中,那麼你可以把這個在VBA項目來着色細胞作爲用戶的表代碼正在進入顏色名稱進入細胞

Private Sub Worksheet_Change(ByVal Target As Range) 

If Target.cells.Count > 1 Then Exit Sub 

Dim color As Integer 

     Select Case Trim(LCase(Target)) 

      Case "blue" 

       color = 5 

      Case "red" 

       color = 3 

      Case "yellow" 

       color = 6 

      Case "green" 

       color = 4 

      Case "purple" 

       color = 7 

      Case "orange" 

       color = 46 

      Case Else 

       color = 0 

     End Select 

Target.Interior.ColorIndex = color 

End Sub 

編輯:圍繞case語句表達式添加Trim函數來測試,以便忽略單元格中意外的前導/尾隨空格:)

相關問題