debugging 在Excel VBA中检查公共变量的值-局部变量窗口替代方法

46scxncf  于 2023-08-06  发布在  其他
关注(0)|答案(3)|浏览(128)

我一直在使用“局部变量”窗口检查过程级变量的赋值。
我最近更新了我的代码,创建了一组公共级变量,这些变量从工作表中读取某些输入,这些输入不会因项目而改变。
当试图检查这些变量时,我没有在Locals窗口中看到它们,毫无疑问,因为它们不是本地定义的变量!
对于公共变量,是否有局部变量窗口的替代方法?如果没有,我应该如何检查公共变量的赋值?

wqlqzqxt

wqlqzqxt1#

除了“即时”窗口(如另一个答案中所述)之外,“监视”窗口在这些情况下非常有用。您可以在 View 菜单-> Watch window 中激活它:x1c 0d1x的数据
在这里您可以定义:

  • 任何变量(例如你的公共变量)
  • 一个完整的术语,例如第一个月
  • 每个手表的范围
  • 甚至当值更改或结果为True时的断点-这在调试时非常方便,因为它允许您快速设置条件断点,而无需添加额外的代码,例如。如果您将watch设置为myVar=0并激活 Break When Value Is True,则代码将在潜在bug“启动”的时刻自动停止

您可以在“Add watch”对话框中添加所有这些选项,您可以通过右键单击代码模块中的任何变量(或其他代码)来获得这些选项-或者通过右键单击watch窗口:



此外,您可以通过双击简单地编辑列表中的任何监视项目。
非常方便的调试工具,特别是。与 * 局部变量 * 和 * 立即 * 窗口结合使用。

a64a0gku

a64a0gku2#

使用“立即”窗口。在编码环境中按Ctrl + G可后藤立即窗口”。它允许在调试模式下获取和设置变量的值。你需要加前缀吗?检查变量的值。举例来说,

?variableName   press enter to get the value
 variableName ="test" press enter to set the value

字符串

w6lpcovy

w6lpcovy3#

如果你把你的“公共定义”移到你运行宏算法的同一个模块中,你会在局部窗口中得到它们。
我把所有的“公共定义”都放在一个工作表中(没有其他东西),很快就发现了一个问题,我找不到局部变量窗口中列出的任何变量,并且无法从局部变量窗口访问模块。
所以我把它们移到了模块表中,我用它来调用我的自定义过程。
话虽如此,它可能是一个很好的方法,总是定义某些事情/变量/对象的“暗淡”,以防止混淆,但这还没有成为一个问题,我还没有,所以我宁愿使用公共。- 如果你认为这是“鲁莽”的话,请给予我一些警告,哈哈。

相关问题