首页 > 解决方案 > For循环每隔5行格式化单元格

问题描述

我正在尝试格式化一个不断增长的表格。假设表格有 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). _
            Interior.Color = RGB(141, 180, 227)
            b = b + 1
            MsgBox b
        End If
    End If

Next I

lRow 确定最后一行,因此设置循环的范围。

之后我使用了两个 mod 函数,第一个确定它是 5 的间隔,第二个确定迭代是偶数还是奇数(完成其他 5 的效果)。

当我运行此代码时,仅突出显示前 5 个。

标签: excelvba

解决方案


我真的不知道您的其余代码打算完成什么,但是这种重写简化了您的循环,以在 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

推荐阅读