2012-03-06 81 views
0

我創建了一個「Sample.Dll」和含有返回一個值,使用Visual Studio 2005類庫訪問它在微軟的函數「sample.tlb」文件Office Excel的宏來獲取單元格值。DLL和TLB引用問題在Excel VBA

我建立Solution.the變化之前設置在Visual Studio 2005中的一些特性是:

  • 應用程序 - >大會信息 - >請大會COM可見覆選框選中。
  • 編譯 - >註冊經過COM互操作複選框(這將創建 'Sample.tlb' 文件)
  • 簽名 - >簽署Assembly.Check選中複選框(這將創建 'Sample.snk' 文件)

我構建解決方案,並有在發行文件夾中的三個文件

  • Sample.Dll
  • Sample.tlb
  • Sample.snk
  • sample.Pdb
  • sample.xml中

現在我放置 'sample.dll' 和 'sample.tlb' 在System32然後註冊在另一臺機器上的sample.dll兩次

  1. by GACUTIL/i。由RegAsm sample.dll

現在我打開Excel然後創建宏,並從系統32添加 'sample.tlb' 的參考和Microsoft ActiveX數據對象sample.dll

  • 2.1庫和Microsoft DAO 3.6庫。 現在我創建了DLL的類文件的一個對象。

    Cells(1,1)=object.Function() 
    

    它在同一臺機器,其中sample.Dll建立,但另一臺機器上它給當執行功能,並沒有返回單元格的值返回錯誤值。 該函數給出了錯誤代碼。

    。錯誤代碼429 2.Error代碼-2147024894

    我研究了兩個錯誤,但並未有任何好成績。 爲什麼它出現在我沒有編譯sample.dll的任何其他機器? 如何創建一個通用的Dll,在每個機器配置和每個機器配置中運行完美? 或我沒有執行什麼步驟?

  • 回答

    0

    很可能你遇到了問題,因爲其他機器上沒有辦公室。你必須有Office Interop DLL才能工作。看一看:

    http://debugmode.net/2011/08/28/creating-and-updating-excel-file-in-windows-azure-web-role-using-open-xml-sdk/

    +0

    你好Tom,非常感謝你的反饋。是的,現場辦公室需要安裝在目標機器上,我們已經確保。問題仍然存在。請幫助我們解決這個問題。我們希望我們能夠傳達我們正面臨的問題。請告訴我們,如果有任何進一步的細節需要我們向您傳達我們正面臨的問題。 – VAIBHAV 2012-03-07 10:20:10