我在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仍然直接跳到最后选择。
答案 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
。