我有一个循环遍历1万行。我在一条记录中间遇到麻烦,我想看看5k行标记附近的代码在做什么。 在下一个f5上执行此操作不切实际。
如何运行到指定的循环号或行号?
答案 0 :(得分:2)
在循环中放入If i = 5000 Then Stop
之类的内容。然后,代码将在调试模式下以i = 5000
高亮显示在Stop
处。然后,您可以使用F9逐步进行操作。
For i = 1 to 10000 '<-- this is YOUR loop!
If i = 5000 Then Stop
'your other code here
Next i
如果它是放置在计数器Do
中的i
循环
Dim i As Long
Do While Criteria = True
i = i + 1
If i = 5000 Then Stop
'your other code here
Loop
答案 1 :(得分:2)
学习使用Debug.Assert
,这会在代码评估为False
时自动暂停您的代码。例如:
Sub Demo_Debug_Assert()
Dim i As Long
For i = 1 To 100
Debug.Assert i < 50
Next i
End Sub
每个i
大于49的值都会中断。显然,可以根据您的条件更改此条件,因此:
Debug.Assert i <> 5000
如果您希望它仅在5000
或
Debug.Assert i < 5000
使代码在4999
之后的每个值处终止
为此,您不必担心在使用代码之前就删除这些行,而可以创建一个DebugMode
全局常量(此处称为Boolean
),这样就不会触发该< / p>
Const DebugMode = True
Sub Demo_Debug_Assert()
Dim i As Long
For i = 1 To 100
If DebugMode Then Debug.Assert i < 50
Next i
End Sub
将全局常量更改为Const DebugMode = False
会将代码运行到最后而不会暂停
答案 2 :(得分:1)
在循环中添加一个增量变量,然后添加如下条件:
i = i + 1
if i = 5000 then
i = 5000 <---- Do F9 here
end if
在“ i = 5000”行上执行F9,以添加用于调试的断点。
这将在5000次迭代后停止运行