Excel电子表格中的多个单元格背景颜色
Excel在格式菜单下有一个条件格式选项,允许您根据其值更改样式/颜色/字体/任何单元格。但它只允许三个条件。Excel电子表格中的多个单元格背景颜色
如何根据单元格的值让Excel显示说,六种不同的背景单元格颜色? (如果值为“红色,请将单元格设为红色,如果为”蓝色“,则将单元格设为蓝色)
您需要在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
Excel 2007中允许多于三个条件。引用自this Microsoft page:
编辑:啊,在链接代码中有一个“功能”:在括号中引用的括号中的处理不正确。这种联系是:http://msdn.microsoft.com/en-us/library/bb286672(office.11).aspx
在Excel 2007中 是指定超过 三个条件,重新排序 条件,并有一个以上的 条件决心的能力改变 条件格式的其他好处真正。
否则。恐怕你被描述的那些杂乱的选择所困住。
您可以使用VBA宏来做到这一点...
这里是一个VBA宏,如果需要大量的病例,可能是更好的 http://chandoo.org/wp/2008/10/14/more-than-3-conditional-formats-in-excel/
你需要的方式来预格式化“N”细胞你想格式化你的整个范围。然后使用该网址中的宏来获得效果。
把它放在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函数来测试,以便忽略单元格中意外的前导/尾随空格:)