这是一个比较复杂的问题,需要具体分析具体情况。以下是一种可能的解决方案:

  1. 在需要筛选的工作表中,选中需要筛选的区域(例如A1:D10)。
  2. 打开“数据”选项卡,选择“筛选”。
  3. 在“筛选”对话框中,选择需要筛选的列,并输入筛选条件。例如,如果需要筛选“列A”中的“苹果”和“橙子”,则需要选择“列A”并输入“苹果”和“橙子”两个条件。
  4. 点击“确定”,筛选结果将显示在原表格中。
  5. 在需要显示结果的工作表中,选中需要显示结果的区域(例如E1:H10)。
  6. 在VBA中,使用以下代码将筛选结果复制到指定的工作表和行数以下:

Sub FilterAndCopy() Dim wsSource As Worksheet, wsDest As Worksheet Dim rngSource As Range, rngDest As Range Dim lastRow As Long

'设置源工作表和筛选区域
Set wsSource = Worksheets("原始数据")
Set rngSource = wsSource.Range("A1:D10")

'设置目标工作表和输出区域
Set wsDest = Worksheets("筛选结果")
Set rngDest = wsDest.Range("E1:H10")

'清除目标工作表原有内容
rngDest.ClearContents

'筛选数据
rngSource.AutoFilter Field:=1, Criteria1:="苹果", Operator:=xlOr, Criteria2:="橙子"

'获取筛选结果的最后一行
lastRow = rngSource.SpecialCells(xlCellTypeVisible).Cells(rngSource.Columns.Count).Row

'复制筛选结果到目标工作表
rngSource.Resize(lastRow - 1, rngSource.Columns.Count).Offset(1, 0).Copy rngDest

'取消筛选
rngSource.AutoFilter

End Sub

在上述代码中,我们首先定义了源工作表(wsSource)和筛选区域(rngSource),以及目标工作表(wsDest)和输出区域(rngDest)。然后,我们使用AutoFilter方法对筛选区域进行筛选,并获取筛选结果的最后一行(lastRow)。最后,我们使用Copy方法将筛选结果复制到目标工作表指定的区域,并取消筛选。

使用vba筛选多个条件显示指定内容到其他工作表指定行数以下

原文地址: https://www.cveoy.top/t/topic/xag 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录