1
我以爲陣列總是在VBA引用傳遞,但這個例子似乎是一個例外:按值傳遞VBA數組的示例?
' Class Module "C"
Private a_() As Long
Public Property Let a(a() As Long)
Debug.Print VarPtr(a(0))
a_ = a
End Property
' Standard Module
Sub test()
Dim a() As Long: ReDim a(9)
Debug.Print VarPtr(a(0)) ' output: 755115384
Dim oc As C
Set oc = New C
oc.a = a ' output: 752875104
End Sub
它纏着我,因爲我需要包含數組的類,它的製作額外的副本。
我有一個類似的問題打開[這裏](http://stackoverflow.com/questions/25328975/array-as-a-class-member)在哪裏,雖然它還沒有答案,評論可能對你有用。 – Blackhawk 2014-09-02 17:02:09
有趣的問題,喬治,但什麼是*問題*?你想知道*爲什麼*?或者你正在尋找替代品來創建三個副本? – 2014-09-02 17:08:38
我在尋找速度,儘管與首先填充數組相比,它並不是一個巨大的命中。理想情況下,我希望'Public a_()as Long'直接從類外部訪問數組,但這是不可能的。 – 2014-09-02 17:31:52