2013-08-28 37 views
5

我想用VBA創建代碼模塊。當我已經有一個代碼模塊,我知道我可以用它設置:如何在VBA中創建代碼模塊

Set cdmdl = wbk.VBProject.VBComponents(codeModuleName).CodeModule 

但是,如果代碼模塊不存在,我該怎麼創建?

我試過下面幾行:

Set cdmdl = new.wbk.VBProject.VBComponents(codeModuleName).CodeModule 
Set cdmdl = create.wbk.VBProject.VBComponents(codeModuleName).CodeModule 

但他們都沒有奏效。我也是谷歌搜索,但這似乎不是一個熱門話題。

+1

我想更新一些Excel文件。他們已經更新了他們的VBA代碼。但他們沒有激活所述VBA腳本的按鈕。 – user1283776

+1

請參閱此鏈接http://www.cpearson.com/excel/vbe.aspx – user3357963

+4

那麼你不應該只是將源工作表中的按鈕複製到目標? – Chel

回答

6

這爲我工作:

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 

您也可以AddFromFile如果你有一個.BAS文件已經導出並要加載到一個工作簿。