【问题标题】:Excel vba Autofilter top 10 rows, copy result based on criteriaExcel vba自动过滤前10行,根据条件复制结果
【发布时间】:2015-02-02 12:01:52
【问题描述】:

我的电子表格中有 A6:H105 范围内的数据

我想在 H 列上使用固定条件过滤前十行 (A6:H15),并从结果中仅复制 A、D、E 列

到目前为止,我有以下代码:

Sub Filter()
    ActiveSheet.Range("A6:H15").AutoFilter Field:=8, Criteria1:="xxx"
End Sub

问题一:为什么第一行没有被过滤?

问题 2:如何在应用过滤器后从范围中仅复制 A、D、E 列?

【问题讨论】:

    标签: excel vba range autofilter


    【解决方案1】:

    答案 1:是因为 Autofilter 将第一行视为表头。将范围设置为从高一行开始,从第 5 行开始。

    答案 2:您可以像这样复制组合范围

    Range("A6:A15, D6:D15, E6:E15").Copy
    

    然后将其粘贴到您喜欢的三个相邻列中。

    您可能需要先修改范围以仅选择过滤或非空白单元格。

    【讨论】:

      【解决方案2】:

      你可以这样做:

      Sub Filter()
      
         ActiveSheet.Range("A6:H15").AutoFilter Field:=8, Criteria1:="xxx"
         Range("A:A,B:B,D:D").Select
         Selection.SpecialCells(xlCellTypeVisible).Select
         Selection.Copy
         Range("J1").PasteSpecial Paste:=xlPasteValues
      
      End Sub
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-30
        • 1970-01-01
        • 2015-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多