2013-10-08 303 views
0

我有一個Excel應用程序,裏面有很多宏。工作簿中的宏被簽名。某些宏調用Windows API函數,並且它們已被移植到正確支持32位和64位版本的Excel中。該應用程序可以在不同的配置(Windows XP,Windows Vista,Windows 7,Windows 8,Excel 2003,Excel 2007,Excel 2010甚至某些Excel 2013)上正常工作。運行時錯誤-2147319784(0x80028018)在Windows 8上使用Excel 2013

該應用程序已使用法語加拿大語言環境在裝有Windows XP和Excel 2007的PC上開發。

我有一個具有下列設置一個客戶:

  • 筆記本電腦與Mac OS/X
  • 虛擬機:
    • Windows 8的英文
    • 的Excel 2013英語

當他跑步時我的應用程序,他總是得到運行時錯誤-2147319784(0x80028018)。

我試圖指出發生錯誤的位置,並且似乎只要宏執行引用Excel對象模型的內容(例如:Application.ScreenUpdating = False),我就會收到錯誤消息。

我試圖複製在新的工作簿中失敗的代碼的確切行,它沒有任何錯誤地正常工作。

我已經看到了在Windows和Excel的其他版本的產品中,英文版本,以及解決問題的方式類似的行爲是改變德區域設置爲美國英語。我在客戶的機器上嘗試過它,但沒有奏效。

我在網上搜索,發現類似問題與Excel 2002中,我發現了微軟的知識庫(http://support.microsoft.com/default.aspx?scid=kb;en-us;320369)在後。這篇文章適用於.NET VSTO應用程序,這顯然不是我的例子。我無法按照文章中的建議更改當前線程的語言環境,因爲這不適用於我的VBA宏。我試圖將Excel.exe文件複製到1033文件夾,並按照建議將其重命名爲xllex.dll,但它也不起作用。

我甚至問我的客戶完全卸載從他的機器上的所有Office產品,只是重新安裝Excel 2013年還不行。

老實說,我在這裏用完了選項......任何人都可以幫我解決這個問題嗎?

謝謝你的幫助!

Ghis

回答

0

Mac上的「Windows API函數」。無法想象這會工作。這是你的錯誤嗎? 「舊的格式或無效的類型庫」我會說你的代碼與Mac不兼容。

我不知道爲什麼代碼將像Application.ScreenUpdating = False一個小問題失敗;但你已經斷定,線路本身並不是問題。

聽起來像你需要重寫你的Mac代碼。

相關問題