我遇到了一个问题,即将数组作为引用传递给子程序,但实际上数组并没有被修改。我设法修复了这个问题,但我想知道原因。
以下是示例:
Private Function fCountArray(ByRef arrayVar As Variant)
arrayVar(0) = 333
End Function
Sub Test1()
Dim changedArr As Variant
Dim notChangedArr As Variant
' create 2 quick array
changedArr = Array(1, 2, 33, 56, 76, 89, 10)
notChangedArr = Array(1, 2, 33, 56, 76, 89, 10)
'intest = Array(3, 1, 2)
fCountArray (notChangedArr)
Debug.Print notChangedArr(0) 'Print Out 1
fCountArray changedArr
Debug.Print changedArr(0) 'Print Out 333
End Sub
那么,fCountArray(notChangedArr)和fCountArray(changedArr)之间的基本区别是什么?
为什么fCountArray(notChangedArr)不是通过引用传递的?