VBA Qual é a diferença subjacente entre a chamada Sub ou Function com ou sem parênteses

Eu tive um problema ao passar uma matriz para uma sub-referência, mas a matriz na verdade não é modificada. Consegui consertar isso, mas quero saber o porquê.

Aqui está o exemplo.

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

Então, qual é a diferença subjacente entrefCountArray (notChangedArr) efCountArray changingArr

Por quêfCountArray (notChangedArr) Não passa por referência?

questionAnswers(1)

yourAnswerToTheQuestion