2012-04-13 83 views

回答

3

可以循环片材上,并使用以下语法:

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

sheetName是所述片材的名称。

对于更高级的用途,您应该检查这个提供更多高级示例的page

+0

嗯,这将无法正常工作:)请参阅我的文章中的链接 – 2012-04-13 13:11:24

+0

嗯,我刚刚测试过它,它适用于我(打印0如果没有代码和行数,如果有代码)。我错过了别的吗? – assylias 2012-04-13 13:49:55

+1

是2件事情:) 1)看我在我的帖子最后编辑2)如果你有“需要变量声明”选项,即使没有代码,因为它将有“选项显式”的行数总是大于0,在上面。这一切都在我的博客文章中解释。 – 2012-04-13 13:53:20

11

我最近在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检查哪些 “” 具有 “” 。

编辑

从技术上讲每宏观是一块代码,但它没有必要每一件代码是一个宏。所以,如果你只是检查宏,然后看到博客帖子的第一部分,如果你正在检查任何代码,然后看看博客帖子的第二部分。

+0

+1 LOL,是的,我记得 – 2012-04-13 13:37:43

+0

+1的无与伦比的精度;) – assylias 2012-04-13 14:25:49

+0

+1不错的答案Sid – brettdj 2012-04-14 02:57:57

相关问题