VBA-复制过滤范围而不选择

时间:2018-09-19 10:56:36

标签: excel vba dynamic

我有一系列数据,我想按特定条件过滤,然后将过滤后的数据复制到另一张纸上。

这是我的代码:

           'filter and Lastrow are variables previously declared    
            Sheet1.Activate
            Sheet1.Range("$A$1:$AW$" & Lastrow).AutoFilter field:=1, Criteria1:=filter
            Sheet1.Range("A1").Select

            Range(Selection, Selection.End(xlDown)).Select
            Range(Selection, Selection.End(xlToRight)).Select
            Selection.Copy Destination:=Sheet2.Range("A1")

问题在于,这需要选择,并且选择需要相关的工作表处于活动状态。 有没有一种方法,而无需先选择(Sheet1.Range(“ A1”)。select)? 请注意,我的过滤范围不是表格。

谢谢!

1 个答案:

答案 0 :(得分:0)

您已经在变量中设置了lastrow。试试

with worksheets("sheet1").Range("A1:AW" & Lastrow)
    .AutoFilter field:=1, Criteria1:=filter
    .Copy Destination:=Sheet2.Range("A1")
end with