检查 Excel VBA 中公共变量的值 - 本地窗口替代方案

问题描述 投票:0回答:3
我一直在使用“局部”窗口来检查过程级变量的分配。

我最近更新了我的代码,创建了一组公共级变量,这些变量从工作表中读取某些输入,这些输入不会因项目而异。

当寻求检查这些变量时,我在“本地”窗口中没有看到它们,这无疑是因为它们不是本地定义的变量!

对于公共变量,是否有本地窗口的替代方案?如果没有,我应该如何检查公共变量分配?

debugging excel global-variables variable-assignment vba
3个回答
24
投票
除了“立即”窗口(如其他答案中所述)之外,“监视”窗口在这些情况下也非常有帮助。您可以在

View 菜单 -> Watch window 中激活它: enter image description here

您可以在这里定义:

    任何变量(例如您的公共变量)
  • 完整的术语,例如
  • ActiveWorkbook.UsedRange.Address
    
    
  • 各手表范围
  • 甚至在值更改或导致
  • True
     时设置断点 - 这在调试时非常方便,因为它允许您快速设置条件断点,而无需添加其他代码,例如如果您将手表设置为 
    myVar=0
     并激活 
    Break When Value Is True,则代码将在潜在错误“启动”时自动停止
您可以在“添加监视”对话框中添加所有这些选项,您可以通过右键单击代码模块中的任何变量(或其他代码)或右键单击监视窗口来获得该对话框:

enter image description here

此外,您只需双击即可编辑列表中的任何观看项目。

非常方便的调试工具,尤其是。与

LocalsImmediate 窗口结合使用。


12
投票
使用立即窗口。在编码环境中按 Ctrl + G 转到立即窗口。 当您处于调试模式时,它允许获取和设置变量的值。 需要加前缀吗?检查变量的值。 例子

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

0
投票
如果您将一组“公共定义”移至运行宏算法的同一模块,您将在本地窗口中获取它们。

我将所有“公共定义”都放在一张纸中(没有其他任何内容),很快就发现了一个问题:我找不到本地窗口中列出的任何变量,并且无法从本地访问该模块窗户。

所以我将它们移动到模块表中,我用它来调用我的自定义程序。

话虽这么说,总是用“dim”来定义某些事物/变量/对象以防止混淆可能是一个很好的方法,但这对我来说还没有成为问题,所以我宁愿使用 public。 - 如果您认为这是“鲁莽”,请给我一些警告,哈哈。

© www.soinside.com 2019 - 2024. All rights reserved.