MICROSOFT

EP05. “Create a Pattern 用双层循环画图案”

首页 Microsoft 工具 Excel · VBA · Loop · EP05
约 4 分钟· #EP05#Excel#Loop
🔒 登录后可标记已读
  • 这篇把 Step 关键字、双层 For 循环和 Offset 属性结合起来,在工作表上画出一个颜色图案
  • 前置知识:EP04 的 Step 用法和 Cells/Offset 的基本用法
  • 学完能理解怎么用嵌套循环控制二维(行 × 列)的图案排列

重点内容


适用版本

桌面版通用(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 或点命令按钮执行,会在工作表左上角区域看到交错的灰色方格图案。

[截图:运行第二层代码后,工作表左上角出现的棋盘状灰色方格图案]


学完你会

  • ✅ 用双层 For 循环搭配 Step 控制二维图案的行列位置
  • ✅ 用 Offset 在原有图案上叠加一层偏移效果
  • ✅ 用 ColorIndex 给单元格上色

常见错误

  • 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