徵兆

當 Microsoft Excel 在儲存格編輯模式下載入自動化外掛時,Excel 會失敗。 這個問題只會發生在被需求載入 Excel 的自動化外掛程式中。

原因

此問題可能發生在外掛載入時,若外掛顯示表單或對話框,或外掛向 Excel 發出自動化請求,試圖改變 Excel 狀態。 以下清單包含了在單元編輯模式下,自動化外掛載入時,可能會導致 Excel 失敗的自動化請求範例:

  • 程式化地改變目前的選擇。 例如:

    Application.ActiveSheet.Range("A1").Select
  • 呼叫 Windows 集合中某個項目的屬性或方法。 例如:

    Application.ActiveWindow.Zoom = 200
  • 更改 Excel 的設定,例如計算模式。 例如:

    Application.CalculationMode = xlManual

這些項目都是嘗試更改 Excel 環境、工作簿或工作表的程式碼範例;在編輯模式下,這類行為是不被允許的。

解決方案

在你的外掛載入時,不要嘗試上述動作。 載入過程中會呼叫的外掛方法包括初始化方法,如果你的自動化外掛實作了 IDTExtensibility2 介面,則還有 OnConnection 和 OnStartupComplete 方法。

狀態

Microsoft 已確認這是本文開頭列出的 Microsoft 產品中的一個錯誤。

其他相關資訊

重現問題的步驟

  1. 在 Visual Basic 中啟動一個新的 ActiveX DLL 專案。

  2. 從專案選單中點選 Project1 屬性。 把專案名稱改成 TestAddIn,然後點選確定。

  3. 為 Class1 的程式碼模組新增以下程式碼:

    Private Sub Class_Initialize()    MsgBox "Class_Initialize"End Sub
  4. 建造 TestAddIn.dll。

  5. 在 Excel 裡,開始一個新的工作簿。

  6. 在 Microsoft Office Excel 2003 或 Microsoft Excel 2002 中,請依照以下步驟操作:

    1. 工具 選單中,指向 「附加元件」,然後點選 自動化

    2. 在清單中點選 TestAddIn.Class1,然後點 選確定

    3. 「附加元件 」對話框中,點擊 確定

    在 Microsoft Office Excel 2007 中,請依照以下步驟操作:

    1. 點選 Microsoft Office 按鈕,然後點選Excel 選項

    2. 點選「 附加元件 」標籤。

    3. 管理 清單中,點選 Excel 外掛,然後點擊 Go

    4. 「附加 元件」對話框中,點選自動化

    5. 在清單中點選 TestAddin.Class1,然後點 選確定

    6. 按一下 [確定]

  7. 類型 =a 在任何格子中。 會出現一個訊息框,上面寫著「Class_Initialize」。

  8. 點擊確定鍵以關閉訊息框。 幾秒鐘後,Excel 失敗了。

參考

如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

291392 資訊:Excel COM 外掛與自動化外掛

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。