2015-06-02 55 views
1

我正在處理一個具有許多ActiveX控件的宏大型Excel文件。該文件的所有功能都可以在我的PC和另一臺PC上正常工作,但Auto_Open宏嘗試激活其他PC上的工作表時,出現錯誤32809。Visual Basic錯誤32809:解決方案無法正常工作

我知道這個問題已經在許多不同的論壇上發佈過許多其他的時間,但是我發現的其他解決方案都不適用於我。我已經嘗試了所有以下可能的解決方案:

  • 無論從TEMP \ Excel8.0和臨時刪除所有* .exd文件\ VBA
  • 禁用所有ActiveX控件
  • 打開PC上的文件不工作,並用不同的名稱
  • 保存修改的代碼略有下降,重新編譯和保存
  • 刪除所有ActiveX控件和重新創建他們的PC上沒有工作

阻止發生32809錯誤的唯一方法是刪除所有的ActiveX控件,但是如果我將現在正在運行的文件保存在我的PC上,並嘗試在沒有工作的文件上打開它,則會返回錯誤。

雖然刪除所有控件確實會停止該錯誤,但在更新文件時必須重新創建不同PC上的所有控件非常不方便。我願意接受任何可能有助於解決這個令人沮喪的問題的建議。

+0

您是否安裝了所有Office更新。那有時候會有訣竅。我有一個程序一直在崩潰,直到我意識到它只在沒有安裝Office更新的計算機上崩潰,所以......另一個選擇是保存爲XLSX文件,所有宏都被刪除,然後複製模塊從舊文件保存爲新的XLSX文件並保存爲XLSM –

+0

創建自定義用戶窗體作爲ActiveX替換... –

+0

Abe-我沒有安裝更新,因爲這些是公司的個人電腦,我必須通過我們的IT部門在所有50多臺受影響的計算機上這樣做。 XLSX方法是否必須在每臺計算機上單獨完成? – JerryT

回答

0

我最終刪除了所有表單中的所有ActiveX控件,然後保存所有更改並編寫例程以在打開文件時重新創建所有必要的控件並使用控件重新保存文件它首次在任何給定的PC上打開。

創建控件在所有例程完成之後才允許調試,因此我使用了Application.OnTime命令,而不是簡單地調用下一個例程來解決此問題。

0

希望這可以幫助。我一直在處理着名的運行時錯誤32809。在VBA中,如果某個對象沒有定義,運行時錯誤32809將在Excel VBA運行時提示。但現在,有關此運行時錯誤的更多案例不是由「未定義對象...」引起的,它是由Microsoft安全修補程序問題引起的。該補丁使VBA ActiveX控件無法識別,因此VBA將這些有效的ActiveX控件視爲未定義的對象。爲了解決這個問題,微軟發佈了新的補丁來解決早期問題。 如果您確保現有的VBA沒有「定義的對象」或過去運行良好,則可以升級您的Microsoft修補程序。 Excel 2010的最新版本應爲14.0.7177.5000或更高版本。

建議:如果產品被多種用戶使用,請勿在VBA中包含ActiveX控件。這可能會導致無盡的問題。任何Windows更新都可能會影響VBA。

+0

感謝您的信息!我想我們會堅持我們在過去幾年運行的工作。 我們嘗試不包含ActiveX控件,但標準表單控件不適用於我們的應用程序。我們實際上需要做的是用Java重寫這個工具,這樣我們可以直接與我們的數據庫通信,而且不必處理Excel的侷限性 – JerryT

相關問題