【发布时间】:2012-04-13 11:33:55
【问题描述】:
如果 Excel 工作簿有许多工作表,其中一些工作表内部有宏,我发现确定哪些工作表有宏的唯一方法是在项目资源管理器中单击每个工作表 (Ctrl+R 在 VBA 中)。
还有其他方法吗?
【问题讨论】:
如果 Excel 工作簿有许多工作表,其中一些工作表内部有宏,我发现确定哪些工作表有宏的唯一方法是在项目资源管理器中单击每个工作表 (Ctrl+R 在 VBA 中)。
还有其他方法吗?
【问题讨论】:
我最近在 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”有“macros”。
编辑
从技术上讲,每个宏都是一段代码,但不一定每段代码都是一个宏。因此,如果您只是检查宏,请查看博文的第一部分,如果您要检查任何代码,请查看博文的第二部分。
【讨论】:
您可以遍历工作表并使用以下语法:
If ActiveWorkbook.VBProject.VBComponents(sheetName).CodeModule.CountOfLines <> 0 Then
sheetName 是工作表的名称。
对于更高级的使用,您应该查看这个page,它提供了更高级的示例。
【讨论】: