VBA 呼叫 managed code dll 出現 Automation 錯誤

問題描述:

使用 Visual Studio 2005 開發的一個 DLL,給 Excal 用 VBA 來使用,

在開發環境中測試都沒有問題

但部署到用戶端(有安裝 .NET Framework 2.0、沒有 VS 2005),執行就會出現錯誤

 

錯誤訊息:

image

Microsoft Visual Basic
---------------------------
Run-time error '-2146232576 (80131700)':

Automation error
---------------------------
OK Help

 

解決方法:

請參考 https://support.microsoft.com/kb/908002/en-us

如果你直接把上面文章中的更新檔在用戶端安裝,馬上就會出現訊息,提醒你沒有安裝 Visual Studio 2005,然後就不給安裝

文章中說的方法好像有點複雜,我只是要在用戶端安裝個更新檔解決這個問題而已。

筆者告訴大家一個偷吃步,直接拿到更新檔給用戶端安裝,步驟如下:

1. 在開發環境上先安裝 908002 的更新檔

2. 任意新增一個安裝專案

3. 在安裝專案按右鍵 => 內容( Properties )

4. 按 Prerequisites.

5. 選取 Shared Add-in Support Update for the Microsoft .NET Framework 2.0 (KB908002) ,如下圖:

image

6. 建置安裝專案

7. 便可以在安裝專案的輸出路徑中發現多了一個 KB908002 的資料夾,如下圖

image  

8. KB908002 中有三個檔案,只要將這三個檔案複製到用戶端的電腦安裝即可。

 

關鍵字:COM Interop Excel VBA interaction with .NET component