EP01. “Debugging 调试代码”
🔒 登录后可标记已读- 宏跑出来的结果不对,但代码看起来「应该没问题」——光盯着代码读是读不出答案的,得看它实际怎么跑
- 按
F8逐行执行,VBA 每次只走一行,工作表和变量的变化看得一清二楚 - 代码长、不想一行行按的话,在想暂停的那行设断点(Breakpoint),跑到那里自动停下来检查
- 学完能在代码出错或结果跑偏时,一步步揪出问题出在哪一行
重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
示例代码
Dim i As Integer, j As Integer
For i = 1 To 2
For j = 1 To 5
Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)
Next j
Next i
方法一:逐行执行(Single Step)
把光标点在代码最前面,反复按 F8,VBA 每按一次只走一行——工作表上跑出了什么变化、每个变量当下是什么值,都能一步一步盯着看。
[截图:按 F8 逐行执行时,VBA 编辑器里当前执行到的那一行代码被黄色高亮标示]
方法二:断点(Breakpoint)
在代码编辑器左侧灰色区域点一下想暂停的那一行,会出现一个红点(断点)。宏跑到这一行就自动停住,检查前面的结果没问题了,再放行继续往下跑。
[截图:VBA 编辑器左侧灰色区域点出的红色断点圆点,以及宏运行到该行自动暂停、整行变成黄色底的效果]
方法怎么选
| 方法 | 适合场景 | 备注 |
|---|---|---|
| 逐行执行 F8 | 代码短,想每一行都看一次 | 反复按 F8,一行一行走 |
| 断点 Breakpoint | 代码长,只想检查某一段 | 点灰色区域设红点,跑到那里自动暂停 |
学完你会
- ✅ 用
F8逐行执行代码,观察每一步的变化 - ✅ 设置断点,让宏跑到指定位置自动暂停
- ✅ 出错或结果不对时,一步步找出问题出在哪一行
常见错误
- 代码很长却没设断点,从头到尾一行一行按 F8,浪费时间
- 断点设完忘记移除,之后正式跑宏时又意外在同一个地方暂停
- 只看最终结果对不对,没有用调试技巧一步步确认中间过程哪一步开始出错
Sources
Blog / Website: