Excel For循环每隔5行格式化单元格
我正在尝试格式化一个增长表。假设表有20行,我希望前5行和之后每隔5行,所以1-5,11-15是某种颜色。我试图用for循环来实现这一点Excel For循环每隔5行格式化单元格,excel,vba,Excel,Vba,我正在尝试格式化一个增长表。假设表有20行,我希望前5行和之后每隔5行,所以1-5,11-15是某种颜色。我试图用for循环来实现这一点 b = 0 For i = 1 To lRow a = i - (5 * (i \ 5)) c = b - (2 * (b \ 2)) If c = 0 Then If a = 0 Then DSws.Range("A" & i - 3, "H" & i). _
b = 0
For i = 1 To lRow
a = i - (5 * (i \ 5))
c = b - (2 * (b \ 2))
If c = 0 Then
If a = 0 Then
DSws.Range("A" & i - 3, "H" & i). _
Interior.Color = RGB(141, 180, 227)
b = b + 1
MsgBox b
End If
End If
Next I
lRow确定最后一行,因此设置循环的范围
之后,我使用两个mod函数,第一个用来确定它是一个5的间隔,第二个用来确定迭代是偶数还是奇数(以实现其他5个效果)
当我运行这段代码时,只突出显示前5个 我真的不知道代码的其余部分打算完成什么,但这次重写简化了循环,使A:H列中的5行带交替着色
For i = 1 To lRow step 10
DSws.cells(i, "A").resize(5, 8).Interior.Color = RGB(141, 180, 227)
Next i
我不是100%清楚你想要什么,但听起来你想要交替的颜色(例如,对于旧的点阵打印机用户,绿色条效果),每五行交替颜色 如果是这种情况,下面的小修改可能会为您做到这一点:
Dim lrow, i, switch As Integer
Dim DSws As Worksheet
Dim col1, col2 As Long
Set DSws = ActiveWorkbook.ActiveSheet
switch = 0
lrow = ??? ' assuming you have a way of defining this
col1 = RGB(141, 180, 227) ' Pick a color
col2 = RGB(0, 180, 227) ' Pick another color
For i = 1 To lrow
If i Mod 5 = 1 Then
switch = switch + 1
End If
If switch Mod 2 = 0 Then
DSws.Range("A" & i, "H" & i).Interior.Color = col1
Else
DSws.Range("A" & i, "H" & i).Interior.Color = col2
End If
Next i
你是说1-5,11-15,对吗?谢谢这很有效!我只需要稍微调整一下,但要点是一样的