Tôi luôn sử dụng ByRef
thành công, cho đến bây giờ. Tôi cần một hàm để sửa đổi một số Double
từ một đối tượng lớp. Để minh họa, hãy xem xét chương trình sau đây.ByRef không hoạt động trong VBA với loại giá trị từ một lớp
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
Đối với tôi ngạc nhiên, ví dụ trên sẽ ra
5
10
Bất kỳ ai?
Hum, cảm ơn! Bây giờ, làm thế nào tôi có thể sửa chữa điều đó? Thật không may, tôi vẫn cần chức năng đó để sửa đổi giá trị. –
Bạn có thể 'temp = cd: ChangeVar temp: cd = temp' hoặc hiển thị phương thức' .changeD (incrementor) 'hoặc' Sub ChangeVar (cls As Class1): cls.d = cls.d + 1' –
Vì vậy, tôi giả sử nó không thể chỉ sử dụng ByRef và PublicVariable của tôi? –