use*_*776 5 excel vba excel-vba
我想用VBA创建一个代码模块.当我已经有一个代码模块时,我知道我可以使用它来设置它:
Set cdmdl = wbk.VBProject.VBComponents(codeModuleName).CodeModule
Run Code Online (Sandbox Code Playgroud)
但是如果代码模块不存在,我该如何创建呢?
我尝试了几行,如:
Set cdmdl = new.wbk.VBProject.VBComponents(codeModuleName).CodeModule
Set cdmdl = create.wbk.VBProject.VBComponents(codeModuleName).CodeModule
Run Code Online (Sandbox Code Playgroud)
但他们没有奏效.我也用谷歌搜索,但这似乎不是一个热门话题.
这对我有用:
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
Run Code Online (Sandbox Code Playgroud)
您还可以AddFromFile,如果你有一个.BAS文件已经导出并要加载到一个工作簿.