徵兆
當 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 產品中的一個錯誤。
其他相關資訊
重現問題的步驟
-
在 Visual Basic 中啟動一個新的 ActiveX DLL 專案。
-
從專案選單中點選 Project1 屬性。 把專案名稱改成 TestAddIn,然後點選確定。
-
為 Class1 的程式碼模組新增以下程式碼:
Private Sub Class_Initialize() MsgBox "Class_Initialize"End Sub
-
建造 TestAddIn.dll。
-
在 Excel 裡,開始一個新的工作簿。
-
在 Microsoft Office Excel 2003 或 Microsoft Excel 2002 中,請依照以下步驟操作:
-
在 工具 選單中,指向 「附加元件」,然後點選 自動化。
-
在清單中點選 TestAddIn.Class1,然後點 選確定。
-
在 「附加元件 」對話框中,點擊 確定。
在 Microsoft Office Excel 2007 中,請依照以下步驟操作:
-
點選 Microsoft Office 按鈕,然後點選Excel 選項。
-
點選「 附加元件 」標籤。
-
在 管理 清單中,點選 Excel 外掛,然後點擊 Go。
-
在 「附加 元件」對話框中,點選自動化。
-
在清單中點選 TestAddin.Class1,然後點 選確定。
-
按一下 [確定]。
-
-
類型 =a 在任何格子中。 會出現一個訊息框,上面寫著「Class_Initialize」。
-
點擊確定鍵以關閉訊息框。 幾秒鐘後,Excel 失敗了。
參考
如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
291392 資訊:Excel COM 外掛與自動化外掛