2017-03-01 22 views
0

我有一个WorkBook_Open()方法添加到众多Excel工作簿的任务。我设法写一个脚本与所需的代码行增加了一个模块(红色标记),但我需要它在DieseArbeitsmappe(标记为绿色)中打开工作簿时自动启动。的VBScript代码添加到Excel工作簿

Project setup

Set xlmodule = objworkbook.VBProject.VBComponents.Add(1) 
strCode = _ 
    "Sub WorkBook_Open()" & vbCr & _ 
    " Application.Run (""'CommonMacro.xlsm'!Workbook_Open"")" & vbCr & _ 
    "End Sub" 
xlmodule.CodeModule.AddFromString strCode 

这是我现在所拥有的代码。我敢肯定的是,错误是在1号线设置xlmodule,但我想不出如何引用到DieseArbeitsmappe时。在此先感谢您的帮助。

回答

1

首先,你不应该使用xlmodule作为变量名。它已被定义为Excel常量。我会把它叫做component。该VBComponents收集装有接受部件组件名称的顺序索引的索引器。你的情况这将是最简单的,只是使用的名称:

Set component = ThisWorkbook.VBProject.VBComponents("DieseArbeitsmappe") 
code = _ 
    "Sub WorkBook_Open()" & vbCr & _ 
    " Application.Run ""'CommonMacro.xlsm'!Workbook_Open""" & vbCr & _ 
    "End Sub" 
component.CodeModule.AddFromString code 

注意,它通常不是直接调用的事件处理程序一样,最好的做法。如果您需要重用的功能,你应该将其拉出处理程序,然后让Workbook_Open呼叫提取Sub

相关问题