我有以下功能:
Function IsInArray(ByVal needle As String, haystack() As String) As Boolean
Dim element As Variant
For Each element In haystack
If element = needle Then
IsInArray = True
End If
Next element
IsInArray = False
End Function
我通过这个子例程调用:
Sub CallIsInArray()
Dim haystack(1 To 4) As String
haystack(1) = "T1"
haystack(2) = "T2"
haystack(3) = "T3"
haystack(4) = "T4"
Dim needle As String
needle = "T1" ' Should return True but instead of it return False
' needle = "T1x" ' Return False as expected
Dim result As Boolean
result = IsInArray(needle, haystack)
MsgBox result
End Sub
问题是 IsInArray
总是返回 False
,为什么?
最佳答案
当您找到针
时,您忘记返回(退出函数
)。
Function IsInArray(ByVal needle As String, haystack() As String) As Boolean
Dim element As Variant
For Each element In haystack
If element = needle Then
IsInArray = True
Exit Function
End If
Next element
IsInArray = False
End Function
关于vba - 函数始终返回 bool 值 False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33300886/