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/lKpb 著作权归作者所有。请勿转载和采集!