EP05. “Create a Pattern 用双层循环画图案”
🔒 登录后可标记已读- 这篇把
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: