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

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

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