excel - 如何使用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
?
解决方案
通过在填充区域中选择一个单元格并按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
数据: