Joh*_*son 2 excel vba excel-vba
我需要循环通过i = 1到99,但我想跳过一些特定的i值.我想跳过的数字是41,83,87,91,92,93,98
我意识到我可以把所有的动作都嵌入到一个i <> 41或者i <> 83等等中.难道没有更简单的方法吗?也许指定一个变量来包含要跳过的值CSL并使用Split?我不知道我的大脑不起作用.请帮忙.
For i = 1 To 99
If i <> 41 And i <> 83 And i <> 87 And i <> 91 _
And i <> 92 And i <> 93 And i <> 98 Then
'do stuff
End If
Next i
Run Code Online (Sandbox Code Playgroud)
宁愿设置一个变量,如:
not_use = "41,83,87,91,92,93,98"
Run Code Online (Sandbox Code Playgroud)
然后有一些For i = 1 To 99除非,not_use 但据我所知,没有办法写出来.
小智 6
您可以使用比If使用Select Case以下语句更紧凑的方式指定要忽略的值:
For i = 1 To 99
Select Case i
Case 41, 83, 87, 91, 92, 93, 98
'Do nothing
Case Else
'Do stuff
End Select
Next
Run Code Online (Sandbox Code Playgroud)
您可以使用工作表公式计算表达式:
not_use$ = "43,83,87,91,92,93,98"
For i = 1 To 99
If Application.Evaluate("ISERROR(MATCH(" & i & ",{" & not_use & "},0))") Then
'// Do Something
End If
Next i
Run Code Online (Sandbox Code Playgroud)
这意味着"测试"一次性评估,而不是使用多个标准或进一步循环.