Microsoft Lab
全部软件
Excel循环(Loop)约 4 分钟

Create a Pattern 用双层循环画图案

重点内容


适用版本

桌面版通用(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 i

ColorIndex = 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 i

Offset(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:

  1. Create a Pattern
只记在你的浏览器里,换设备不会同步。