VBA ¿Cuál es la diferencia subyacente entre la llamada Sub o función con o sin paréntesis?
Tuve un problema al pasar un Array a un Sub By Reference, pero el Array en realidad no se modifica. Me las arreglé para arreglar eso, pero quiero saber por qué.
Aquí está el ejemplo.
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
Entonces, ¿cuál es la diferencia subyacente entrefCountArray (notChangedArr) yfCountArray changedArr
Por quéfCountArray (notChangedArr) No pasar por referencia?