共用方式為


應用程式定義或物件定義的錯誤

使用 Raise 方法產生錯誤或 Error 陳述式未與 Visual Basic for Applications 定義的錯誤對應時,會顯示此訊息。 當引數未與 Visual Basic for Applications 定義的錯誤對應時,Error 函數也會將其傳回。 因此,它可能是您定義的錯誤,或是物件 (包括 Microsoft Excel、Visual Basic 等主應用程式) 所定義的錯誤。 例如,Visual Basic 表單會產生表單相關的錯誤,該錯誤無法僅透過將數字指定為 Raise 方法或 Error 陳述式的引數而從程式碼產生。 此訊息有下列原因和解決方法:

  • 您的應用程式會執行 Err.RaisenErrorn 陳述式,但是 Visual Basic for Applications 未定義數字 n。 如果這是預期的情況,您必須使用 Err.Raise 並指定額外的引數,讓使用者能夠了解錯誤的本質。 例如,您可以包含描述字串、來源和說明資訊。 若要重新產生您截獲的錯誤,如果您未在產生錯誤之前執行 Err.Clear,則此方法可行。 如果您先執行 Err.Clear,則必須對 Raise 方法填入額外的引數。 查看發生錯誤所在的內容,並確認您重新產生相同的錯誤。

  • 可能是在從其他應用程式存取物件時,錯誤已回填至您的程式,而無法與 Visual Basic 錯誤對應。

請檢查文件中是否有您已存取的任何物件。 Err 物件的 Source 屬性應該包含產生錯誤的應用程式或物件的程式設計識別碼。 若要了解物件所傳回的錯誤內容,您可以在存取物件的程式碼中使用 On Error Resume Next 建構,而非 On Error GoToline 語法。

列出主應用程式的可截獲錯誤

在過去,程式設計人員通常會使用迴圈來列印所有可截獲錯誤訊息字串的清單。 一般來說,這是使用如下的程式碼完成:

For index = 1 to 500
    Debug.Print Error$(index)
Next index

這類程式碼仍會列出 Visual Basic for Applications 的所有錯誤訊息,但會對主機定義的錯誤 (例如 Visual Basic 中與表單、控制項等相關的錯誤) 顯示「應用程式定義或物件定義的錯誤」。 其中大部分都是可截獲的執行階段錯誤。 您可以使用 [說明] 中的 [搜尋] 對話方塊來尋找您的主應用程式的特定可截獲錯誤清單。 按一下 [搜尋],在第一個文字方塊中輸入可截獲,然後按一下 [顯示主題]。 選取下方清單中的 [可截獲的錯誤],然後按一下 [移至]

如需詳細資訊,請選取有疑問的項目並按 F1 (在 Windows 中) 或 HELP (在 Macintosh 上)。

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應