【问题标题】:Output macro execution steps输出宏执行步骤
【发布时间】:2016-04-22 20:54:19
【问题描述】:

有没有办法实时可视化宏执行步骤?
前任。

Sub activate_sheets()
Worksheets("s1").Activate
'some code
Worksheets("s2").Activate
'some code
........    
End Sub  

我想在执行过程中查看 s1 是否已处理,然后 s2 是否已处理等。

像这样
codeline1 - 已处理
codeline2 - 已处理
...
换句话说,一些“即时窗口”,但不是在 vba 模式下
谢谢你

【问题讨论】:

  • 是的,您可以在要检查的行之后设置断点。一旦代码到达刹车点,它将停止并通过将鼠标悬停在变量等上,您可以检查它们的状态。在 VBA 编辑器中启用本地和即时窗口也很有用。第一个列出了当前模块的所有变量及其状态,另一个可用于插入一段代码或临时打印一些东西,使用Debug.Print

标签: excel vba


【解决方案1】:

使用 ALT+F11 调出您的 VBA 编辑器,在代码内单击并按 F8。每次按 F8 时,它都会单步执行代码一行。要查看工作表上的结果,请切换到工作表并查看。要查看变量值,只需将鼠标悬停在代码中的它们上,当前值就会在智能感知窗口中弹出。您甚至可以通过键入 ? 后跟变量或对象的属性来使用 Immediate Window 查看当前值。

或者,您可以在每一行之后使用Debug.Print 语句。

【讨论】:

    【解决方案2】:

    您可以使用 Debug.Print("") 在调试窗口中写入日志。

    Sub activate_sheets()
      Worksheets("s1").Activate
        'some code
        debug.print ("worksheet S1 processed")
      Worksheets("s2").Activate
        'some code
        debug.print ("worksheet S2 processed")
      End Sub  
    

    但是,只有当您从 Visual Basic 编辑器执行宏时。如果您希望用户能够看到处理了哪些步骤,那么您可能希望显示自定义表单并创建某种类型的进度条。这是我最常用的——用户喜欢看进度条。

    请在http://www.filedropper.com/progressbartest 找到示例文件 - 我匆忙构建了它。但它至少会给你一个想法......

    【讨论】:

      猜你喜欢
      • 2019-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多