使用vba筛选多个条件显示指定内容到其他工作表
这里提供一个基本的 VBA 代码,可以实现筛选多个条件,并将符合条件的内容显示到其他工作表中。
前提条件:
-
需要先定义好筛选条件,可以是一个或多个条件。
-
需要指定数据源工作表和目标工作表,数据源工作表中包含需要筛选的数据。
下面是具体的 VBA 代码:
Sub FilterData()
Dim rngData As Range Dim rngCriteria As Range Dim rngResult As Range Dim wsData As Worksheet Dim wsResult As Worksheet
'定义数据源工作表和目标工作表 Set wsData = Worksheets("Data") Set wsResult = Worksheets("Result")
'定义数据源范围和筛选条件范围 Set rngData = wsData.Range("A1").CurrentRegion Set rngCriteria = wsData.Range("F1:F2")
'定义结果范围,并清空目标工作表 Set rngResult = wsResult.Range("A1") wsResult.Cells.ClearContents
'筛选数据 rngData.AutoFilter field:=3, Criteria1:=">=100" rngData.AutoFilter field:=6, Criteria1:=rngCriteria
'将筛选结果复制到目标工作表 rngData.SpecialCells(xlCellTypeVisible).Copy rngResult
'取消筛选 rngData.AutoFilter
End Sub
以上代码中,首先定义了数据源工作表和目标工作表,使用 Set 语句将它们赋值给变量 wsData 和 wsResult。然后定义了数据源范围和筛选条件范围,使用 Set 语句将它们赋值给变量 rngData 和 rngCriteria。接着定义了结果范围,使用 Set 语句将它赋值给变量 rngResult,并清空了目标工作表,以便将筛选结果填充到它里面。
接下来使用 AutoFilter 方法,根据指定的筛选条件筛选数据。可以看到,这里使用了两个筛选条件,分别是第 3 列大于等于 100,和第 6 列等于筛选条件范围中的值。
最后使用 SpecialCells 方法,选择所有可见的单元格,并将它们复制到结果范围中。
最后,取消自动筛选,以便下一次使用。
需要注意的是,这只是一个基本的例子,实际使用中需要根据具体情况进行调整。
原文地址: https://www.cveoy.top/t/topic/w99 著作权归作者所有。请勿转载和采集!