【问题标题】: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