检查值是否存在于范围内而不进行循环

cli*_*ere 1 excel vba excel-vba

我已经习惯了Python语法在那里检查,如果7list1你只需键入7 in list1它返回一个布尔值.我怎么能在vba中执行这样的操作?

我目前正在进行大范围的循环.我想偶尔检查一下我循环的值是否在不同的范围内.如果我不得不在循环中嵌入更多循环,这可能会慢得多.解决这个问题的最快方法是什么?

For i = 400 To 1 Step -1:
'doing other things

'here's some psuedo-code of what I want to do
If Sheets("Sheet2").Cells(i, 2).Value In Sheets("Sheet1").Range("NamedRange")
Sheets("Sheet2").Cells(i, 2).EntireRow.Delete
End If

Next i
Run Code Online (Sandbox Code Playgroud)

Dan*_*hue 5

使用countif,如果它大于零,那么你知道它存在于列表中:

If Application.WorksheetFunction.CountIf(Sheets("Sheet1").Range("NamedRange"), Sheets("Sheet2").Cells(i, 2).Value) > 0 Then
    Sheets("Sheet2").Cells(i, 2).EntireRow.Delete
End If
Run Code Online (Sandbox Code Playgroud)