2016-04-29 97 views
2

在我的Excel工作簿有時我收到以下錯誤:VBA用戶定義類型沒有定義(有時只)

vba user defined type not defined

我知道,這通常意味着有一些類型的代碼中脫穎而出( VBA)不知道。

奇怪的是,該代碼運行完全正常,並在編譯不會發生這種情況。

此錯誤隨機在Application.Calculate家庭的所有方法和F9按鍵有時occures。 並不總是,但有時。

同樣的行爲與此說明一個VBE錯誤消息:

visual basic module contains a syntax error

當我點擊調試它的土地上application.calculate(full),如果我繼續碼(與F5)繼續沒有錯誤。

編輯: 有時,當我這個功能複製到另一個工作簿它得到受用戶自定義類型的錯誤:

Option Explicit 

Public Function MergeAreaValue(rng As Range) As String 
On Error Resume Next 

If rng.MergeCells = True Then 
    MergeAreaValue = rng.MergeArea.Cells(1).Value2 
Else 
    MergeAreaValue = rng.Value2 
End If 

End Function 

的函數從合併後的區域價值。

EDIT2: 我已經在用戶自定義類型的錯誤總是occures的計算,但不會打破它。該工作簿仍然計算正常..該消息只是煩人的。

+0

是否在您自己的代碼或庫中定義了違規類型?如果是後者,是否檢查過它是否包含在工具/參考中? – jsheeran

+0

以及我應該注意到,這個錯誤並不指向我的聲明。 (就像我認爲它應該這樣做) 該工作簿包含了很多代碼。但唯一的(不是標準的)外部引用是Microsoft腳本運行時。和微軟XML – JoshK

+0

你碰巧有類似的變量是公開的嗎? –

回答

0

看來我是「有時」是關鍵字。嘗試反編譯文件。例如,使用this

多年來,我使用它沒有任何問題,但好處僅:) Excel中沒有內部的反編譯器作爲接入/反編譯。 不要忘了自己備份,而不只是工具:) 。