【问题标题】:How to determine quickly which sheets have macros in Excel Workbook?如何快速确定 Excel 工作簿中哪些工作表有宏?
【发布时间】:2012-04-13 11:33:55
【问题描述】:

如果 Excel 工作簿有许多工作表,其中一些工作表内部有宏,我发现确定哪些工作表有宏的唯一方法是在项目资源管理器中单击每个工作表 (Ctrl+R 在 VBA 中)。

还有其他方法吗?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    我最近在 MSDN 上回答了一个问题,并最终在上面写了一篇博文。

    主题:检查 Excel 文件是否有宏

    链接http://www.siddharthrout.com/2012/04/12/check-if-an-excel-file-has-a-macro/

    然后您可以使用 .VBComponents.Item(i).Name.VBComponents.Item(i).Type 来检查哪些“Sheets”有“ma​​cros”。

    编辑

    从技术上讲,每个都是一段代码,但不一定每段代码都是一个宏。因此,如果您只是检查宏,请查看博文的第一部分,如果您要检查任何代码,请查看博文的第二部分。

    【讨论】:

      【解决方案2】:

      您可以遍历工作表并使用以下语法:

      If ActiveWorkbook.VBProject.VBComponents(sheetName).CodeModule.CountOfLines <> 0 Then
      

      sheetName 是工作表的名称。

      对于更高级的使用,您应该查看这个page,它提供了更高级的示例。

      【讨论】:

      • 嗯,我刚刚测试了它,它对我有用(如果没有代码则打印 0,如果有代码则打印行数)。我还缺少其他东西吗?
      • 是的 2 件事 :) 1) 请参阅我在帖子中的最后编辑 2) 如果您选中了“需要变量声明”,那么即使没有代码,行数也将始终大于 0,因为它将在顶部有“选项显式”。这一切都在我的博文中进行了解释。
      猜你喜欢
      • 1970-01-01
      • 2022-11-24
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多