问题
我正试图调试一些代码,在中间的某个地方我停在了一个断点处。现在我想改变一些变量,并运行某个循环几次。
我走了多远?
我知道如何改变变量,但不知何故,当我试图在即时窗口中运行循环时,我被卡住了。下面是一个例子:
Dim i As Integer
Dim j As Integer
For i = 0 To 6
j=i ' Do something
Next i
我尝试了代码的几种变体,但每次都得到以下错误:
编译错误:下一个没有for
其他相关信息
我试着搜索,但主要是找到有关循环问题的信息,同时我很确定循环本身是好的。(尤其是在我到达断点之前)。
唯一的地方,我看到有人addres这种情况,他减少了循环到一行,但这样做的每一次将是非常不切实际的,在我的情况下。
我意识到我可以调用一个包含循环的函数,然后函数调用可能会起作用,但这又感觉很不切实际。所以我想这可以归结为下面的问题。
3条答案
按热度按时间z9gpfhce1#
实际上有一种在即时窗口中使用循环或其他多行语句的方法-使用冒号
:
来分隔语句,而不是使用新行。完整的解决方案描述为here。注意 * 在即时窗口中 * 你也不必使用Dim语句声明变量。总而言之,您的代码片段看起来像这样:
0h4hbjxa2#
我想我明白你的问题了。你想运行一个多行代码块(即循环)。这会引发错误,因为“即时窗口”仅用于单行代码。
除了你已经提到的那些,我没有其他建议。我建议将测试循环放到一个单独的函数中,并从即时窗口调用它:
另一种选择是设置多个断点。您也可以使用F8一次运行一行代码。
可能是 * 首选 * 的方法(即大多数人实际上所做的)是使用IDE的全部功能,其中包括Immediate、Locals和Watch窗格。你可以在即时窗格中直接赋值,在运行时修改大多数变量的值(
i=6
将完全按照你的想法去做)。IDE还允许您设置断点、添加监视条件、使用F8逐行单步执行代码、使用Shift+F8单步执行函数或过程调用、使用鼠标/光标单步执行(和返回)代码,除少数例外情况外,您甚至可以在运行时添加新变量。yqhsw0fo3#
解决方案是使用语句分隔符“:”(冒号)和行连续字符“”(下划线)。
注意冒号之间的空格:和下划线
以下是我的即时窗口:
下面是我的MSOffice365Excel即时窗口截图
Excel VBA Immediate Window clip