我已經創建了一個類模塊,我在其中定義了一個函數。無論何時調用該函數,它都會在本地窗口中列出兩次。只有第二個值的變化,第一個值根據其類型保持爲空或「零」,直到代碼執行結束。我在標準模塊中定義的函數沒有這個問題。我做錯了什麼,這是一個錯誤,還是有這背後的邏輯原因?爲什麼我的函數名在「locals」窗口中出現兩次?
所述的TestClass類模塊的內容:標準模塊的
Public Value As Double
Function AddFive() As Double
AddFive = Me.Value + 5
End Function
內容:
Sub TestSub()
Dim TestObject As New TestClass
TestObject.Value = 2
MsgBox TestObject.AddFive
End Sub
下面是一個屏幕截圖示出了,當執行該代碼行由在函數的代碼執行後,函數的值在本地窗口中列出兩次,並且只有第二個值已經更改。
我使用VBA的Excel 2010中
在此先感謝。
請發表您的代碼。 – brettdj 2012-02-05 02:52:48
VBA函數中有一個與函數名稱相同的隱式變量。你在你的片段中分配的那個。變化的是隱式變量,不是實際函數的返回值,只有在退出函數後才進行計算。 – 2012-02-05 16:36:56
如果函數是在標準模塊中定義的,則函數的返回值不會出現在本地窗口中。爲什麼只有隱含變量出現? – Cutter 2012-02-05 16:46:44