VBA Was ist der grundlegende Unterschied zwischen dem Aufruf von Sub oder Function mit oder ohne Klammern?
Ich hatte ein Problem mit der Übergabe eines Arrays an ein Sub-By-Reference-Objekt, aber das Array wurde tatsächlich nicht geändert. Ich habe es geschafft, das zu beheben, aber ich möchte wissen, warum.
Hier ist das Beispiel.
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
Also, was ist der Unterschied zwischen den zugrunde liegendenfCountArray (notChangedArr) undfCountArray changedArr
WarumfCountArray (notChangedArr) Nicht als Referenz übergeben?