我有通过函数传递二维数组的有趣情况.
在表单的级别范围声明数组:
我尝试从VB6重写我的代码的一部分,我有可行的示例.
Dim myArray(,) As Double
Run Code Online (Sandbox Code Playgroud)
然后我得到一个sub,其中数组被重新编号并根据数据填充,类似这样的符号情况:
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
Run Code Online (Sandbox Code Playgroud)
最后,我想填充和读取其他子数组中的数据:
mySub(myArray)
Debug.Print(myArray(1, 5))
Run Code Online (Sandbox Code Playgroud)
在这里我收到错误消息:
你调用的对象是空的.
mySub中的数据已正确填充但我在调用sub时看不到这些数据.
我做错了什么,如何让这个场景有效?
你可以通过这样做来解决它:
Public Sub mySub(ByRef myArray(,) As Double)
'...
End Sub
Run Code Online (Sandbox Code Playgroud)
您需要引用变量才能在Sub之外进行更改.