不知道要跑几次,只知道什么时候要停
不知道要循环几次,只知道「到某个条件成立就停」。例如从第 1 行填到第 6 行就停。
Do Until 是什么
Do Until直到…才停
条件还没成立就继续做,成立了就停。
| 循环 | 适合 | 备注 |
|---|---|---|
For ... Next | 知道要跑几次 | 计数器自动加 |
Do While ... Loop | 条件成立时继续 | 一开始不成立,一次都不跑 |
Do Until ... Loop | 条件成立就停 | 跟 Do While 方向相反,别搞混 |
用 Do Until 填到第 6 行就停
Dim i As Integer
i = 1
Do Until i > 6
Cells(i, 1).Value = 20
i = i + 1
Loopi = 1:从 1 开始。Do Until i > 6:只要i还没大于 6,就一直做。Cells(i, 1).Value = 20:第i行第 1 列设成 20。i = i + 1:自己把i加 1。Do Until不像For,不会自动加。Loop:回到Do Until再判断一次。
- 1
按 Alt+F11 → Insert → Module,把代码放进一个 Sub,运行
i从 1 到 6,A1 到 A6 都被填上 20。到i变 7(大于 6)就停。A 1 20 2 20 3 20 4 20 5 20 6 20
❌ 忘了 i = i + 1:i 永远是 1,循环永远不会停,Excel 卡住。卡住时按 Ctrl + Break 中断。
❌ Do While 和 Do Until 搞反:条件写反,结果一次都不跑或跑不停。
为什么次数不固定时要用 Do 不用 For
✅ 不知道要跑几次,用 Do 比 For 灵活。
📌 写之前问自己:「是条件成立时继续,还是成立时停?」
Sources
Blog / Website: