vba - 检查值是否在范围内而不循环

标签 vba excel

我习惯于在python语法中检查7是否在list1中,您只需键入7 in list1并返回一个 bool(boolean) 值。如何在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

最佳答案

使用一个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

关于vba - 检查值是否在范围内而不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64975435/

相关文章:

vba - 比较两个工作表并突出显示差异

VBA 文本到列读取美国日期格式

excel - 通过更改多个单元格在求解器 VBA 中设置单元格?

sql - 使用 VBA 代码在 Access 中运行 SQL 语句

vba - 错误处理完成后出现奇怪的错误行为

vba - “Runtime error 5692”是什么意思?

vba - 在 Excel 中运行 SAS 存储过程两次运行后失败

excel - 如何在 VBA 中的函数中返回和使用多个值

Excel 数据透视图线性时间刻度

ms-access - 从 Word 文档表单控件获取数据