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