我需要一种方法来在工作表中以相同的背景颜色格式化交替的行对。环顾四周时,我找到了以下链接:
Excel VBA: Alternate Row Colors in Range
我的问题是类似的,除了不需要每隔一行自动填充背景颜色,我需要相邻的行对。例如,从我的第4行开始点A:T
将填充,第5行A:T
将具有相同的背景颜色,第6行和第7列A:T
将没有背景颜色,第8行和第9行将共享背景颜色为第4行和第5行,重复直到电子表格结束。
我已尝试为此目的使用条件格式,但1)我无法从我的起点开始为每对行交替显示背景,2)它覆盖了几个特殊情况具有不同的背景颜色3)条件格式化不允许我手动格式化条件格式化函数格式化的任何行。
非常感谢评论者的建议(这使我走上正轨),但由于条件格式的限制,我拼凑了以下宏,允许根据我的需要格式化背景,而不会消除纠正的能力特殊情况。代码被大量评论,以帮助其他新手了解代码的含义以及修改内容以更改宏的行为。
Sub AlternateRowColors()
''PURPOSE: To format the background color of alternating pairs of rows in a designated range of cells with values.
'' A correction to account for a possible empty row at the end of the range not having a value failing to follow the
'' desired pattern is included.
'' Example: Column A
'' Row 1: Green
'' Row 2: Green
'' Row 3: No Background Color
'' Row 3: No Background Color
'' Repeating this pattern until the end of the used cells of a worksheet.
Dim lastUsedRow As Long ''Variable to hold the last row number.
lastUsedRow = Range("A200").End(xlUp).Row ''This checks backwards from cell A200 to A1 for the last row with an entry in Column A
''and saves the row number in variable lastUsedRow. Modify this as needed for each worksheet.
If lastUsedRow Mod 2 = 0 Then ''This block of code corrects for the second row of an entry not being highlighted at the
lastUsedRow = lastUsedRow + 1 ''end of the worksheet if the first cell in the following row is blank.
Else
End If
For Each cell In Range("A4:T" & lastUsedRow) ''Sets the range of rows and columns that the background color formatting is to affect.
If cell.Row Mod 4 = 0 Then ''Highlight row if the row number has a divided remainder of zero
cell.Interior.ColorIndex = 35 ''Sets background color by using .ColorIndex instead of RGB. Change to suit your need.
Else
If cell.Row Mod 4 = 1 Then ''Highlight row if the row number has a divided remainder of 1
cell.Interior.ColorIndex = 35 ''Sets background color by using .ColorIndex instead of RGB. Change to suit your need.
End If
End If
Next cell
End Sub
''ADDITIONAL NOTES:
''NONE
答案 0 :(得分:1)
在条件格式设置中尝试这些公式>使用公式确定要格式化的单元格:
=AND(ROW()>3,MOD(ROW(),4)=1)
和
=MOD(ROW(),4)=0
两者都适用于$ A:$ T
根据这些一般规则,为特殊格式的单元格制定规则。
希望这有帮助。
答案 1 :(得分:1)
在条件格式中使用公式
=Mod(Row(),4) < 2
在您希望将规则应用于
的单元格中