【问题标题】:Return a True/False Boolean from an InStr function? vba从 InStr 函数返回 True/False 布尔值? vba
【发布时间】:2015-11-10 10:17:41
【问题描述】:

我想创建一个带有 if 函数的循环。 if 函数的条件需要是包含“*”的活动单元格。

-If -like 函数不起作用,因为like 函数无法识别“*”数字,因为它使用这些数字来定义字符串的一部分。

  • 我认为将常规 if 函数与 InStr 函数结合起来可能会奏效,但我不确定如何将它们结合起来。

如何从 InStr 函数返回 True/False 布尔值?

【问题讨论】:

    标签: excel vba


    【解决方案1】:
    Do While ActiveCell.Value <>"" 
        If InStr(ActiveCell.Value, "*") Then
            MsgBox("Cell contains at least one '*'")
            Else:
        End if
        ActiveCell.Offset(1,0)
    Loop
    

    【讨论】:

    • fwiw,我通常添加一个 CBool​​ 包装器(例如 If CBool(InStr(ActiveCell.Value, "*")) Then)只是为了提醒自己 InStr function 被用作布尔值。
    • 为什么要挂Else:
    【解决方案2】:
    Do While ActiveCell.Value <> "" 
        If InStr(ActiveCell.Value, "*") <> 0 Then
            MsgBox("Cell contains at least one '*'")
        Else
            MsgBox("Cell does not contain at least one '*'")
        End if
        ActiveCell.Offset(1,0)
    Loop
    

    字符串表达式要么包含特殊字符的位置,要么不包含。如果不是,则 Instr 返回值为 0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-09
      • 2020-06-23
      • 2017-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多