아래 함수는 단어를 허용하고 단어가 공용 변수 배열에 유지 관리되는 단어 목록에 있는지 확인합니다.함수에 전달 된 인수가 함수가 호출 서브 프로그램에 반환 된 후 값이 변경됨
가Dim buff() As String
....
If (Not (IsNormalCap(buff(i + 1)))) Then
....code.....
End if
질문 :
버프 (I + 1)이 통과듯한 호출 서브 서브 코드를 호출이 함수
Function IsNormalCap(Mywrds As String) As Boolean
If Right(Mywrds, 1) = "." Then Mywrds = Left(Mywrds, Len(Mywrds) - 1)
i = 0
Do While i < UBound(CapsType) + 1
If (Mywrds <> CapsType(i)) Then
i = i + 1
Else
Exit Do
End If
Loop
If i = UBound(CapsType) + 1 Then
IsNormalCap = False
Else
IsNormalCap = True
End If
End Function
관련 라인 문자열 배열의 요소를 전달 함수가 호출 된 후 buff (i + 1)의 값이 변경되면서 ByRef로 변경됩니다. 끝에 마침표가 포함 된 단어는 마침표가없는 마침표로 다시 돌아옵니다. 왜 이런 일이 생길까요? 이러한 인수가 전달되는 몇 가지 함수가 있으므로 ByVal (또는 그 반대로)를 전달할 때 ByRef가 전달되는 시점을 알 수없는 것처럼 보입니다. 미리 감사드립니다. 제가 충분히 명확한 지 알려주세요. 함수 선언에서
ByRef가 기본값임을 알게되었습니다. http://msdn.microsoft.com/en-us/library/aa263527(v=vs.60).aspx 그런데 왜 이런 일이 일어나지 않았습니까? – Peekay