2015-08-30 199 views
0

我對VBA相對較新,但對編程不太熟悉。我試圖建立一個類的共享實例,並且一直運行到運行時錯誤91,在那裏它抱怨沒有設置變量。當設置新對象時,Visual Basic運行時錯誤「91」

'A Module which acts as the singleton loader 
Option Explicit 
Private instance As GroceryDatabase 

Public Function sharedInstance() As GroceryDatabase 
    If instance Is Nothing Then 
     Set instance = New GroceryDatabase 'Run-time error 91 thrown here 
    End If 

    Set sharedInstance = instance 
End Function 

顯然,變量還沒有設置,這就是爲什麼我分配一個新GroceryDatabase。我已經看到了很多這個問題的答案是歸結到一個人試圖使用一個沒有對象的,但我不明白爲什麼當我嘗試初始化它這個被拋出。

+1

你的錯誤是在「set instance = ...」嗎? grocerydatabase的構造函數在遍歷代碼時是否工作? – GisMofx

+1

Aha,我向GroceryDatabase的構造函數中拋出了一個斷點,結果發現裏面有一個變量,實際上是拋出錯誤。我要回答我自己的問題,謝謝! – Chris

+0

另一種方法來捕捉這些是設置'工具>選項>常規>在類模塊中斷「 –

回答

0

該錯誤並不是由於實例化對象的行而引起的,而是由於構造函數中的一個問題,實際上有一個變量被賦值但未設置。

這是通過在GroceryDatabase的構造函數中放置一個斷點而發現的。將來,我已經在工具>選項>常規路徑中啓用了「類別模塊中斷」。現在,當按下「調試」按鈕時,問題立即被查明。