首页 > 解决方案 > 如何使用excel VBA过滤具有条件的多列

问题描述

设想

我有以下带有值的excel表

在此处输入图像描述

我需要的

我只想在满足以下条件时过滤掉值

If Status = "RO" OR Status = "SS" OR (Status = "NO" AND StartDate <>"") OR Status = "INVEST")

使用带有 VBA 的 excel 过滤器。

这是一个非常大的表,如果可以通过过滤技术,它会更快,而不是逐个比较值并逐个复制。这就是我想使用过滤器的原因。这可能吗?

正常录音仅提供以下内容,我不知道在我的情况下如何做

例如:ActiveSheet.Range("$A$3:$D$21").AutoFilter Field:=4, Criteria1:="SS"

但是如何检查过滤器if blank on start date and a particular value on Status

标签: excelvba

解决方案


通过在填充区域中选择一个单元格并按Ctrl+将您的数据设置为 Excel 表格T

在末尾添加一个名为Include. 在该列的顶部单元格中输入以下内容(它将自动过滤所有行):

=OR([Status] = "RO", [Status]  = "SS", AND([Status] = "NO",[Start Date] <>""),[Status] = "INVEST")

在您的代码中使用以下 VBA 行:

With ThisWorkbook.Worksheets("Yoursheetname").ListObjects("YourTableName").Range
    .AutoFilter
    .AutoFilter Field:=5, Criteria1:= _
    "TRUE"
End With

数据:

数据


推荐阅读