2016-08-17 126 views
0

好的,我知道你可以使用Microsoft.Office.Interop.Excel;在c#程序中使用VBA命令。從C#運行宏?

我面臨的問題是,我有一個接近10,000行代碼的VBA,並將其轉換爲C#兼容命令是不現實的。它創建一個工作簿並執行數據操作和格式化,以按用戶請求打印。

有沒有辦法在C#中存儲宏,然後創建一個工作簿,然後我可以按原樣運行宏?

+0

我從來沒有用過但是Interop有Application.Run()方法來運行一個宏。 –

+0

這可能是有用的... http://stackoverflow.com/questions/9301354/inject-and-execute-excel-vba-code-into-spreadsheet-received-from-external-source – dazedandconfused

+0

http:// stackoverflow。 com/questions/38975802/excel-interop -c-sharp-cant-add-vbproject-error-800a03ec-on-workbook -vbproject -v/38978442?noredirect = 1#comment65333643_38978442相當新近 – prizm1

回答

0

您可以像運行Excel一樣運行宏。 看看這個:

Running an Excel Macro via C#: Run a macro from one workbook on another?

http://oakdome.com/programming/CSharp_RunExcelMacro.php

如果你不希望Excel在執行過程中可以看到,對於Excel.ApplicationClass的Visible屬性設置爲false。

+0

這運行一個外部文件。我想避免這種情況,這意味着應用程序必須知道每個用戶PC上的文件位置。 – KyloRen

+1

您可以擁有一個Excel文件,該文件是運行宏的標準模型。在運行時,您可以克隆模型並導入或以編程方式爲克隆創建數據,然後運行宏。 – Alvimar