Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将代码添加到Excel工作簿的VBScript_Vba_Excel_Vbscript - Fatal编程技术网

Vba 将代码添加到Excel工作簿的VBScript

Vba 将代码添加到Excel工作簿的VBScript,vba,excel,vbscript,Vba,Excel,Vbscript,我的任务是将工作簿\u Open()方法添加到大量Excel工作簿中。我设法编写了一个脚本,其中添加了一个带有所需代码行的模块(标记为红色),但在打开工作簿时,我需要在DieseArbeitsmappe(标记为绿色)中将其添加到autostart中 这是我现在掌握的密码。我很确定,在设置xlmodule时,错误在第1行,但我不知道如何引用DieseArbeitsmappe。提前感谢您的帮助。首先,您不应该将xlmodule用作变量名。它已定义为Excel常量。我会把它叫做组件。VBCompon

我的任务是将
工作簿\u Open()
方法添加到大量Excel工作簿中。我设法编写了一个脚本,其中添加了一个带有所需代码行的模块(标记为红色),但在打开工作簿时,我需要在
DieseArbeitsmappe
(标记为绿色)中将其添加到autostart中


这是我现在掌握的密码。我很确定,在设置xlmodule时,错误在第1行,但我不知道如何引用
DieseArbeitsmappe
。提前感谢您的帮助。

首先,您不应该将
xlmodule
用作变量名。它已定义为Excel常量。我会把它叫做
组件
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
请注意,这样直接调用事件处理程序通常不是最佳做法。如果需要重用该功能,应将其从处理程序中拉出,然后打开
工作簿
调用提取的
子文件

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