4

我有通过函数传递二维数组的有趣情况。
数组在表单级别范围内声明:
我尝试从 VB6 重写我的部分代码,其中我有可行的示例。

Dim myArray(,) As Double

然后我得到一个子数组,其中数组根据数据重新调整和填充,类似这样的符号情况:

Public Sub mySub(ByVal myArray(,) As Double)

    Dim temparray() As Double = {3, 5, 7, 9}
    For a As Double = 0 temparray.length - 1
         ReDim Preserve myarray(2, temparray(a))
    Next a

    myArray(1, 5) = 3.14
    ... etc...
End Sub

最后,我想从其他子中填充和读取数组中的数据:

mySub(myArray)
Debug.Print(myArray(1, 5))

在这里我收到错误消息:

你调用的对象是空的。

mySub 中的数据已正确填写,但我在调用 sub 时看不到此数据。
我做错了什么,我怎样才能让这个场景工作?

4

1 回答 1

10

你可以通过这样做来解决它:

Public Sub mySub(ByRef myArray(,) As Double)
    '...
End Sub

您需要引用该变量才能在 Sub 之外进行更改。

于 2013-01-24T12:19:10.770 回答