我正在尝试调试一些代码,而在中间的某个地方,我在断点处停了下来。现在我想改变一些变量并多次运行一个循环。
我知道如何更改变量,但是当我尝试在即时窗口中运行循环时,我会陷入困境。这是一个例子:
Dim i As Integer
Dim j As Integer
For i = 0 To 6
j=i ' Do something
Next i
我尝试了几种代码变体,但每次出现以下错误:
编译错误:下一步没有
我试过搜索但是大部分都找到了有关循环问题的信息,而我很确定循环本身很好。 (特别是当我到达断点之前到达它)。
我看到有人出现这种情况的唯一地方,他将循环减少到一行,但是在我的情况下,每次这样做都是非常不切实际的。
我意识到我可以调用一个包含循环的函数,然后函数调用可能会起作用,但这再次感觉非常不切实际。所以我想这归结为以下问题。
答案 0 :(得分:6)
实际上有一种方法可以在立即窗口中使用循环或其他多行语句 - 使用冒号:
来分隔语句而不是新行。
描述完整解决方案here。
请注意,立即窗口中的 您也不必使用Dim语句声明变量。
总结一下,您的代码段看起来像这样:
For i = 0 To 6: j=i: debug.Print i+j: Next i
答案 1 :(得分:5)
我想我理解你的问题。您想在立即窗口中运行多行代码块(即循环)。这会引发错误,因为立即窗口仅用于单行代码。
除了你提到的那些之外,我没有任何建议。我建议将测试循环放入一个单独的函数并从立即窗口调用它:
Sub Test()
Dim i As Integer
Dim j As Integer
For i = 0 To 6
j=i ' Do something
Next i
End
另一种选择是设置几个断点。您也可以使用 F8 一次运行一行代码。
首选方法(即大多数人实际做的)可能使用IDE的全部功能,包括Immediate,Locals和Watch窗格。您可以通过直接窗格中的直接分配更改大多数变量在运行时的值(i=6
将完全按照您的认为应该执行此操作)。 IDE还允许您设置断点,添加监视条件,使用 F8 逐行逐行执行代码,使用 Shift + F8 逐步执行函数或过程调用,使用鼠标/光标踩过(和返回)代码,除了少数例外,您甚至可以在运行时添加新变量。