2016-09-23 72 views
1

我使用C#通過VSTO構建Excel AddIn,我想要做的一件事就是自動將我寫入(一個.bas文件)的VBA模塊導入到Excel中,並在運行時運行它用戶從Excel的Com AddIns中導入我的Excel AddIn。c#VSTO從硬盤驅動器運行VBA模塊

我想這樣的:

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
    { 
     this.Application.Run(@"C:\myModule.bas"); 
    } 

但是有錯誤:Cannot run the macro 'C:\myModule.bas'. The macro may not be available in this workbook or all macros may be disabled.

在此先感謝誰讀我的問題的人!

回答

4

這很簡單,只要

wb.VBProject.VBComponents.Import ("C:\\Module1.Bas"); 

你不運行的模塊。您在模塊中運行一個過程。要運行該程序,只需使用

oXL.Run "Procedure Name(parameters if any)" 

閱讀全文How to dynamically add and run a VBA macro from Visual Basic。這在VBA中有解釋,但我相信你可以很容易地將它應用到C#中。如果您有任何問題,請告訴我。

+0

謝謝!我現在正在發短信。將進一步討論。 –

+0

你需要先導入它,因爲我已經顯示在上面,然後你可以運行它 –

+0

我現在工作得很好!謝謝! –