【发布时间】:2015-05-03 05:36:08
【问题描述】:
我在 Excel VBA 中有一个包含多个 If 语句的循环。这会根据某些条件遍历并隐藏某些行。基本上,如果其中一个语句为真,则该行被隐藏。由于只有一个语句必须为真才能隐藏行,因此一旦发现其中一个语句为真,测试其余语句将毫无意义。一旦发现 if 语句为真,我将如何输入一行代码来表示进入循环的下一次迭代?任何帮助将不胜感激!
For i = 1 To rng2.Rows.Count
If Left(rng3.Cells(i, 1).Value, 8) = "CMS Part" Then
If rng3.Cells(i, 1).Value <> "CMS Part D (CY " & Year(Date) & ")" Then
rng3.Cells(i, 1).EntireRow.Hidden = True
End If
End If
If rng4.Cells(i, 1).Value = "Yes" Then
rng4.Cells(i, 1).EntireRow.Hidden = True
End If
If InStr(1, CStr(rng5.Cells(i, 1).Value), "test") > 0 Or InStr(1, CStr(rng5.Cells(i, 1).Value), "Test") > 0 Or InStr(1, CStr(rng5.Cells(i, 1).Value), "demo") > 0 Or InStr(1, CStr(rng5.Cells(i, 1).Value), "Demo") > 0 Or InStr(1, CStr(rng5.Cells(i, 1).Value), "TEST") > 0 Or InStr(1, CStr(rng5.Cells(i, 1).Value), "DO NOT USE") > 0 Then
rng5.Cells(i, 1).EntireRow.Hidden = True
End If
Next i
【问题讨论】:
-
使用
Select Case构造,或使用IF .... ElseIf .... ElseIf... End If构造 -
这显然是
If...ElseIf的情况;Select Case在这里是个糟糕的选择。