Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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
Excel 如何在VBA中创建代码模块_Excel_Vba - Fatal编程技术网

Excel 如何在VBA中创建代码模块

Excel 如何在VBA中创建代码模块,excel,vba,Excel,Vba,我想用VBA创建一个代码模块。当我已经有一个代码模块时,我知道我可以使用: Set cdmdl = wbk.VBProject.VBComponents(codeModuleName).CodeModule 但是如果代码模块不存在,我如何创建它 我试过几句话,比如: Set cdmdl = new.wbk.VBProject.VBComponents(codeModuleName).CodeModule Set cdmdl = create.wbk.VBProject.VBComponents

我想用VBA创建一个代码模块。当我已经有一个代码模块时,我知道我可以使用:

Set cdmdl = wbk.VBProject.VBComponents(codeModuleName).CodeModule
但是如果代码模块不存在,我如何创建它

我试过几句话,比如:

Set cdmdl = new.wbk.VBProject.VBComponents(codeModuleName).CodeModule
Set cdmdl = create.wbk.VBProject.VBComponents(codeModuleName).CodeModule
但它们没有起作用。我也用谷歌搜索过,但这似乎不是一个热门话题。

这对我来说很有用:

Public Function CreateModule(xlwb As Workbook) As VBComponent
    Dim module As VBComponent
    Set module = xlwb.VBProject.VBComponents.Add(vbext_ct_StdModule)
    module.Name = "MyModule"
    module.CodeModule.AddFromString "public sub test()" & vbNewLine & _
                                    "    'dosomething" & vbNewLine & _
                                    "end sub"
    Set CreateModule = module
End Function

如果您有一个已导出的.bas文件,并且希望加载到工作簿中,也可以
AddFromFile

我想更新一些Excel文件。他们已经更新了VBA代码。但是它们没有激活所述VBA脚本的按钮。请参见此链接,您不想将按钮从源工作表复制到目标工作表吗?