Like operator in Excel VBA

Like operator in Excel VBA

我在 for 循环中有一个 if 语句,我在其中尝试使用 like 运算符将当前 Cell 值与其他字符串进行比较。出于某种原因,这给了我一个类型不匹配错误。这是因为 rng5.Cells(i, 1).Value 不是字符串吗?任何帮助将不胜感激!我把原代码贴在下面了。

For i = 1 To rng5.Rows.Count

    If rng5.Cells(i, 1).Value Like "*test*" Or "*Test*" Or "*Demo*" Or "*demo*" Then
        rng5.Cells(i, 1).EntireRow.Hidden = True
    End If
Next i

OR 运算符仅适用于布尔值,因此您必须向其提供布尔值。你不能像以前那样省略条款

For i = 1 To rng5.Rows.Count

    If rng5.Cells(i, 1).Value Like "*test*" Or rng5.Cells(i, 1).Value Like  "*Test*" Or rng5.Cells(i, 1).Value Like  "*Demo*" Or rng5.Cells(i, 1).Value Like  "*demo*" Then
        rng5.Cells(i, 1).EntireRow.Hidden = True
    End If
Next i

使用 Instr 函数

For i = 1 To rng5.Rows.Count

    If instr(1,rng5.Cells(i, 1).Value, "test")>0  Or instr(1,rng5.Cells(i, 1).Value, "Test")>0 Or instr(1,rng5.Cells(i, 1).Value, "demo")>0  Or instr(1,rng5.Cells(i, 1).Value, "Demo")>0 Then
        rng5.Cells(i, 1).EntireRow.Hidden = True
    End If
Next i

如果需要,使用 Lcase 或 Ucase 验证数据内容,使用不区分大小写的 like

Sub test()
    For i = 1 To rng5.Rows.Count
        If LCase(rng5.Cells(i, 1).Value) Like "*test*" Or _
            LCase(rng5.Cells(i, 1).Value) Like "*demo*" Then

            rng5.Cells(i, 1).EntireRow.Hidden = True

        End If
    Next i
End Sub