Bor*_*w37 5 excel vba excel-vba
我有一个复杂的VBA函数和一个包含多个工作表的工作簿.假设代码遍历Sheet1的每一行并对该数据执行某些操作.
我希望能够暂停SourceRow = 16,检查我在不同的纸张上得到的结果,然后继续(按下确定,或一些按键)
我试过了
If SourceRow = 16 Then
MsgBox "ReachedRow 16"
End If
Run Code Online (Sandbox Code Playgroud)
但消息框是模态的,我无法切换到不同的工作表来查看数据.
PS 16就是一个例子,现在硬编码,但不会在以后.
Sou*_*ire 10
您可以使用该Stop语句,然后按F5以恢复代码执行.这类似于添加断点.
If SourceRow = 16 Then
Stop
End If
Run Code Online (Sandbox Code Playgroud)
在暂停时,该行将突出显示为黄色,您应该能够导航工作表.
例:
以类似的方式,您可以使用Debug.Assert (sourcerow <> 16)哪个会在sourcerow<>16评估为false 时暂停代码,也就是说当sourcerow等于16时.(感谢RBarryYoung的评论)
如果您不想在代码中永久停止,请考虑通过单击VB编辑器中编辑窗口左侧的灰色区域来添加断点,该区域应如下所示:
到达线路时代码将停止.再次按下F5以恢复代码执行.或者,您可以连续按F8,以逐行逐步执行代码.这消除了设置许多断点的需要.
只需单击栗色圆圈即可关闭断点.断点不会保存在您的代码中,因此这是一个临时方法(与上面列出的两种方法相反,如果您保存工作簿,这两种方法将保留在您的VBA代码中).
这些图片来自Wise Owl关于断点的本教程.
SourceRow(代码中的任意位置)并单击Add Watch....在出现的对话框中,在Expression文本框中输入以下内容:
SourceRow = 16
Run Code Online (Sandbox Code Playgroud)在Watch Type,选择Break when value is True.
点击OK.
当达到该值时,这将自动导致程序中断/暂停,并且不需要为调试/暂停目的添加任何新代码.
| 归档时间: |
|
| 查看次数: |
12270 次 |
| 最近记录: |