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?

Respuestas a la pregunta(1)

Su respuesta a la pregunta