The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.
I wondered that the compiler did not find an error in the expression...
Function chk(ByVal x As String) As Long Dim i As Long For i = 1 To Len(x) chk = chk + Mid(x, i, 1) Next If chk > 9 Then chk = chk(chk) End Function
or by implicit conversion in numeric operation:
chk = chk + CLng(Mid(x, i, 1))
If the ByVal keyword is omitted:
chk = chk - Mid(x, i, 1) Next chk = -chk
...then the compiler raises an error "ByRef argument type mismatch". But if the argument type is also omitted then there is no error.
Function chk(x As String) As Long 'causes compiler error
Another purpose of this article is to show once again that a function name can be used as a normal variable within the function code; i.e., there is no need to declare an auxiliary variable as some programmers do:
Function chk(x) Dim i For i = 1 To Len(x) chk = chk + CLng(Mid(x, i, 1)) Next If chk > 9 Then chk = chk(chk) End Function
Function chk(x) Dim i, aux 'aux is actually redundant' For i = 1 To Len(x) aux = aux + CLng(Mid(x, i, 1)) Next chk = aux If chk > 9 Then chk = chk(chk) End Function