vba - 函数始终返回 bool 值 False

标签 vba excel

我有以下功能:

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/

相关文章:

excel - 为什么(&HFFFF00 和 &HFF00)= &HFFFF00?

vba - Excel VBA 如果值为空则匹配

sql - 如果选中复选框则更新记录

vba - excel日期格式问题

两次之间的Excel IF AND公式

vba - 将多个 Subs 合并为一个 VBA Sub

excel - 打印变量的名称

regex - pandas python 中字符串的精确匹配

Excel - 如何删除一张工作表中不包含另一张工作表中的列输入的所有行

mysql - 有没有一种方法可以将 LOAD DATA INFILE(导入)xlsx 文件加载到 MySQL 数据库表中