重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
第一层:奇数行列上色
用双层循环、Step 2 只取奇数的行和列(1、3、5):
Dim i As Integer, j As Integer
For i = 1 To 5 Step 2
For j = 1 To 5 Step 2
Cells(i, j).Interior.ColorIndex = 15
Next j
Next iColorIndex = 15 对应浅灰色,可以换成 1-56 之间其他数字试不同颜色。这段代码执行后,第 1、3、5 行与第 1、3、5 列交叉的 9 个单元格会被涂成浅灰色,形成一个网格状图案。
第二层:用 Offset 加一层偏移图案
在同一个双层循环里,额外对「向下偏移 1 行、向右偏移 1 列」的单元格也上色:
Dim i As Integer, j As Integer
For i = 1 To 5 Step 2
For j = 1 To 5 Step 2
Cells(i, j).Interior.ColorIndex = 15
Cells(i, j).Offset(1, 1).Interior.ColorIndex = 15
Next j
Next iOffset(1, 1) 表示从当前单元格出发,向下 1 行、向右 1 列的那个单元格。加上这一行后,图案会在原本奇数行列的基础上,额外多一组交错的方格,形成棋盘状的效果。
怎么运行
Alt+F11 打开 VBA 编辑器,把代码放进按钮点击事件,按 F5 或点命令按钮执行,会在工作表左上角区域看到交错的灰色方格图案。
运行第二层代码后,工作表左上角出现的棋盘状灰色方格图案
学完你会
常见错误
Offset(1, 1)的两个参数分别是「行偏移」和「列偏移」,顺序写反(比如以为是先列后行)会让图案偏移方向不对Step 2只取奇数位置,如果起始值改成偶数(比如For i = 2 To 5 Step 2),图案的位置会整体跟着偏移,判断图案对不对时要注意起始值ColorIndex用的是 Excel 内建的 1-56 号色板编号,不是自定义 RGB 值,想要精确控制颜色要改用Cells(...).Interior.Color = RGB(r,g,b)
Sources
Blog / Website: