Excel vba Autofilter前10行,根据条件复制结果

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

我想过滤H列中具有固定标准的前10行(A6:H15),并从结果中仅复制列A,D,E

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

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

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

问题2:如何在应用filter后只复制列A,D,E的范围?

答案1:这是细菌自动filter把第一行作为表头。 将范围设置为从第5行开始的更高一行。

答案2:你可以像这样复制一个组合的范围

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

然后粘贴到任何你喜欢的三个相邻的列。

您可能需要修改范围才能首先select已过滤或非​​空白的单元格。

你可以做这样的事情:

 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