배열을 Sub By Reference에 전달할 때 문제가 발생했지만 배열이 실제로 수정되지 않습니다. 그 문제를 해결했지만 그 이유를 알고 싶습니다.VBA 괄호 사용 여부에 따라 Sub 또는 Function이 달라지는 이유
다음은 예제입니다.
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) 참조로 통과하지 왜?
나는 당신이 엔드 서브를 의미한다고 생각합니다. 좋은 대답. – NYCdotNet
@NYCdotNet 네, 잘 잡으세요! –
+1,이 주제에 대한 가장 좋아하는 토론은 다음과 같습니다. http://dailydoseofexcel.com/archives/2012/05/01/quick-vba-tip-parentheses/ –