|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 大虾小菜 于 2018-8-7 12:35 编辑
各位大神,小弟近日在编程中遇到了一个匪夷所思的问题,就是在On Error GoTo Line语句和For...Next语句搭配使用的时候,即使给For循环明确指定了范围和步长,最后还是会比指定的范围多循环一次,并且导致报错。但如果我把On Error GoTo Line语句删除,则程序恢复正常。
请问这是什么原因呢?提前拜谢各位大神了~
问题代码如下:
- Sub 测试代码_1()
- On Error GoTo line
- Dim a As Long
-
- For a = 10 To 6 Step -2
- Debug.Print a
- Next a
-
- line:
- MsgBox a
- End Sub
复制代码 问题代码的运行过程:a会依次取值10、8、6、4,并在取值为4的时候报错,进入Line模块。但我明明限制了a的范围是从10递减到6的。。。
正常代码如下:
- Sub 测试代码_2()
-
- Dim a As Long
-
- For a = 10 To 6 Step -2
- Debug.Print a
- Next a
-
- End Sub
复制代码 正常代码执行情况符合预期。
|
|