我總是成功使用ByRef
,直到現在。我需要一個函數來修改類對象的Double
。爲了說明,請考慮以下程序。ByRef不能在VBA中使用值類型從類
Class1.cls:
Public d As Double
Sub Test()
Dim c As Class1, d As Double
Set c = New Class1
c.d = 5
d = 5
ChangeVar c.d
ChangeVar d
Debug.Print c.d
Debug.Print d
End Sub
Sub ChangeVar(ByRef d As Double)
d = 10
End Sub
對於我驚訝的是,上面的例子將輸出
5
10
任何人?
嗯,謝謝!現在,我該如何解決這個問題?不幸的是,我仍然需要這個函數來修改這個值。 –
你可以'temp = cd:ChangeVar temp:cd = temp'或者暴露一個'.changeD(incrementor)'方法或'Sub ChangeVar(cls As Class1):cls.d = cls.d + 1' –
所以,我假設僅使用ByRef和我的PublicVariable是不可能的? –