Case Like在VBA中不起作用

时间:2014-02-19 17:11:51

标签: vba

我在VBA中有以下代码,但是,虽然我的单元格中的值是“PAR-DDD-CHEAP”,但是这样的情况不起作用,代码会直接跳到结束选择。

有人可以对此有所了解吗?

                Select Case CStr(nRg.Value)
                  Case CStr(nRg.Value) Like "PAR-DDD*", "PAR-BBB*", "PAR-GGG*"

                    If nRg.Offset(0, 6).Value = "NEW" Then
                    nRg.Offset(0, 8).Value = sResult.Offset(-18, 0)
                    ElseIf nRg.Offset(0, 6).Value <> "NEW" Then
                    nRg.Offset(0, 8).Value = sResult.Offset(-9, 0)
                    End If
                  End Select

我甚至测试了Case CStr(nRg.Value) = "PAR-DDD-CHEAP"的陈述,VBA仍然直接跳到最后选择。

1 个答案:

答案 0 :(得分:0)

LIKE比较返回True或False,因此SELECT CASE必须测试True。必须使用OR运算符对每个值重复比较。

Select Case True
    Case nRg.Value LIKE "PAR-DDD*" OR nRg.Value LIKE "PAR-BBB*" OR nRg.Value LIKE "PAR-GGG*"

可以只使用If nRg.Value LIKE "PAR-DDD*" OR nRg.Value LIKE "PAR-BBB*" OR nRg.Value LIKE "PAR-GGG*" Then