2008-11-06 4 views
5

Excel verfügt über die Option Bedingte Formatierung ... im Menü Format, mit der Sie je nach Wert den Stil/Farbe/Schriftart/Was auch immer einer Zelle ändern können. Aber es erlaubt nur drei Bedingungen.Mehrere Zellenhintergrundfarben in Excel-Tabellen

Wie bekomme ich Excel zur Anzeige sagen, sechs verschiedene Hintergrundzellenfarben je nach dem Wert der Zelle? (IE Machen Sie die Zelle rot, wenn der Wert "Rot" ist, und blau, wenn "Blau" usw.)

Antwort

7

Sie müssen etwas in VBA schreiben.

Siehe Beispiel hier: 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 ermöglicht es mehr als drei Bedingungen. Zitat aus this Microsoft page:

EDIT: Ah, es gibt ein "Feature" im Linking-Code: Klammern in einem Link in Klammern zitiert werden nicht korrekt behandelt. Diese Verbindung ist: http://msdn.microsoft.com/en-us/library/bb286672(office.11).aspx

Weitere Vorteile der Änderungen bedingte Formatierung in Excel 2007 sind die Fähigkeit, mehr als drei Bedingungen festlegen, Bedingungen neu zu ordnen, und mehr als eine Bedingung Entschlossenheit müssen Wahr.

Sonst. Du bist fest mit unordentlichen Alternativen wie beschrieben, fürchte ich.

0

Sie können Makros verwenden VBA, dies zu tun ...

hier ist ein VBA-Makro, das besser sein könnte, wenn viele Fälle benötigen http://chandoo.org/wp/2008/10/14/more-than-3-conditional-formats-in-excel/

Sie ‚n‘ Zellen mit dem Weg zum vorformatieren brauchen Sie möchten Ihren gesamten Bereich formatieren. und dann das Makro in dieser URL verwenden, um den Effekt zu erhalten.

1

fügen Sie dies in ein Modul in Ihrem VBA-Projekt ein. Sie können dann einen Bereich in einem Arbeitsblatt markieren und die untergeordnete Komponente im Menü Extras> Makro> Makros ausführen, um die einzelnen Zellen im ausgewählten Bereich zu färben.

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 

Wenn Benutzer neue Farbnamen in den Zellen eintreten, werden dann könnten Sie in dem Blatt Code in dem VBA-Projekt stellen diese die Zellen als Benutzer Farbe ist die Eingabe der Farbnamen in Zellen

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 

EDIT: Trim-Funktion um den zu testenden Case-Anweisung-Ausdruck hinzugefügt, so dass zufällige führende/nachstehende Leerzeichen in Zellen ignoriert werden :)