我的电子表格是这样设置的:
我在A列中有一个职位编号列表,在B列中有一个对应的职位列表。我需要对某个职位编号的所有行进行着色。例如,行2-4在列A中具有"3705“,因此这些行将被着色为红色。第5行和第6行在列A中有4169,并且将显示为绿色。行7-10在列A中有5518行,并且将被着色为红色(在红色和绿色之间交替)。
谁能给我一个VBA代码,它将自动/使用宏执行我上面描述的操作?
谢谢!!
发布于 2010-11-24 00:09:48
Sub colorize()
Dim r As Long, val As Long, c As Long
r = 1
val = ActiveSheet.Cells(r, 1).Value
c = 4 '4 is green, 3 is red '
For r = 1 To ActiveSheet.Rows.Count
If IsEmpty(ActiveSheet.Cells(r, 1).Value) Then
Exit For
End If
If ActiveSheet.Cells(r, 1).Value <> val Then
If c = 3 Then
c = 4
Else
c = 3
End If
End If
ActiveSheet.Rows(r).Select
With Selection.Interior
.ColorIndex = c
.Pattern = xlSolid
End With
val = ActiveSheet.Cells(r, 1).Value
Next
End Sub如果希望每次列A中的单元格更改值时都触发宏,请将以下内容添加到相关工作表的模块中:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Then
Exit Sub
End If
colorize
End Sub发布于 2011-10-02 11:16:05
如果可以添加列,则可以仅使用Excel公式和条件格式来完成此操作。您可能无法交替使用红色/绿色,但只能选择一种颜色,而不是任何颜色。
Alternate Excel Row Color Based on Content
https://stackoverflow.com/questions/4257730
复制相似问题