Excel电子表格中的多个单元格背景颜色

Excel在格式菜单下有一个条件格式化选项,允许你根据它的值改变样式/颜色/字体/任何一个单元格。 但它只允许三个条件。

如何根据单元格的值显示六种不同的背景单元格颜色? (如果值为“红色”,则使单元格变为红色,如果变为“蓝色”,则使单元格变为蓝色等)

你将需要在VBA中写一些东西。

在这里看例子: 在条件格式中绕过优秀3标准限制 :

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 

Excel 2007允许三个以上的条件。 从这个微软网页引用:

编辑:啊,链接代码中有一个“function”:在括号中引用的括号中的括号没有被正确处理。 该链接是: http : //msdn.microsoft.com/en-us/library/bb286672(office.11​​).aspx

Excel 2007中条件格式更改的其他好处是可以指定三个以上的条件,重新sorting条件以及将多个条件parsing为True。

除此以外。 恐怕你所描述的一切都是凌乱的。

把它放在你的VBA项目的一个模块中。 然后,您可以在工作表中突出显示一个范围,然后从“工具”(Tools)>“macros”(Macro)>“macros”(Macros)菜单项中运行该子工具,

 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 

如果用户在单元格中input新的颜色名称,则可以将其放入VBA项目的表单代码中,以便在用户将颜色名称input到单元格中时为单元格着色

 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语句expression式添加Trim函数来testing,以便忽略单元格中意外的前导/尾随空格:)

您可以使用VBAmacros来做到这一点…

这里是一个vbamacros,如果需要大量的情况下可能会更好http://chandoo.org/wp/2008/10/14/more-than-3-conditional-formats-in-excel/

你需要用你想格式化整个范围的方式预先格式化'n'单元格。 然后使用该url中的macros来获得效果。