如果Excel工作簿有许多片材和它们中的一些具有宏内,我已发现,以确定哪些片具有宏是通过点击他们每个人的项目资源管理器(Ctrl键 + - [R在VBA的唯一方式)。如何快速确定哪些工作表在Excel工作簿中具有宏?
有没有其他方法可以做到这一点?
如果Excel工作簿有许多片材和它们中的一些具有宏内,我已发现,以确定哪些片具有宏是通过点击他们每个人的项目资源管理器(Ctrl键 + - [R在VBA的唯一方式)。如何快速确定哪些工作表在Excel工作簿中具有宏?
有没有其他方法可以做到这一点?
可以循环片材上,并使用以下语法:
If ActiveWorkbook.VBProject.VBComponents(sheetName).CodeModule.CountOfLines <> 0 Then
sheetName
是所述片材的名称。
对于更高级的用途,您应该检查这个提供更多高级示例的page。
我最近在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
检查哪些 “表” 具有 “宏” 。
编辑
从技术上讲每宏观是一块代码,但它没有必要每一件代码是一个宏。所以,如果你只是检查宏,然后看到博客帖子的第一部分,如果你正在检查任何代码,然后看看博客帖子的第二部分。
嗯,这将无法正常工作:)请参阅我的文章中的链接 – 2012-04-13 13:11:24
嗯,我刚刚测试过它,它适用于我(打印0如果没有代码和行数,如果有代码)。我错过了别的吗? – assylias 2012-04-13 13:49:55
是2件事情:) 1)看我在我的帖子最后编辑2)如果你有“需要变量声明”选项,即使没有代码,因为它将有“选项显式”的行数总是大于0,在上面。这一切都在我的博客文章中解释。 – 2012-04-13 13:53:20