偵測到模糊名稱
識別碼 與其他識別碼衝突,或是需要限定性條件。 此錯誤的原因及解決方案如下︰
在同一 範圍 內可能會有一個以上的物件擁有相同名稱的項目。
藉由加入物件名稱和句號來限定項目名稱。 例如:
object.property
模組層級 識別碼和 專案層級識別碼 (模組名稱和 參考的專案 名稱) 可能會在 程序 中重複使用,雖然如此會使程式難以維護和偵錯。 不過,如果想要參考在相同程序中的這兩個項目,必須限定具有較廣範圍的項目。 例如,如果
MyID
是在的MyModule
模組層級宣告 ,然後在模組中以相同的名稱宣告 程式層級變數 ,則必須適當地限定模組層級變數的參考:Dim MyID As String Sub MySub MyModule.MyID = "This is module-level variable" Dim MyID As String MyID = "This is the procedure-level variable" Debug.Print MyID Debug.Print MyModule.MyID End Sub
在模組層級宣告的識別碼會與程序名稱衝突。 例如,如果變數
MyID
在模組層級宣告,然後一個程序以相同名稱定義,則會發生錯誤︰Public MyID Sub MyID '. . . End Sub
在此情況下,您必須變更其中一個名稱,因為具有相同模組名稱的限定性條件無法解決語意模糊。 程序名稱預設為 公用,但變數名稱為 私用 (除非指定為 公用)。
如需詳細資訊,請選取有疑問的項目並按 F1 (在 Windows 中) 或 HELP (在 Macintosh 上)。
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。