自动filter根据2个标准复制并粘贴到不同的工作表

我真的不知道如何使用Autofilter这个,但我正在创build一个新的工作表,我试图根据两个标准筛选另一个工作表。 然后,我需要从该工作表中只有2列的值复制到新的工作表。 这是迄今为止的代码:

Private Sub Workbook_Open() Dim ws As Worksheet Set sheet = Sheets.Add(After:=Sheets(Worksheets.Count)) ActiveSheet.Range("A11").Value = "Projects in Loss:" ActiveWorkbook.Sheets("Fielding").Activate ActiveSheet.ShowAllData ActiveWorkbook.Sheets("Fielding").Activate ActiveSheet.ShowAllData Selection.AutoFilter field:=15, Criteria:=ActiveWorkbook.Sheets(Target).Range("A3").Value, Operator:=xlAnd Selection.AutoFilter field:=21, Criteria:="<30%" & ">0" ActiveSheet.Columns("A").Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy ActiveWorkbook.Sheets(ws).Activate ActiveSheet.Range("A12").PasteSpecial xlPasteValues Application.CutCopyMode = False ActiveWorkbook.sheet ("Fielding") ActiveSheet.Columns("U").Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy ActiveWorkbook.Sheets(ws).Activate ActiveSheet.Range("B12").PasteSpecial xlPasteValues Application.CutCopyMode = False End Sub 

它不断给我一个运行时错误“1004”。 有没有人知道我做错了什么,或可以指引我在正确的方向吗?

 Selection.AutoFilter field:=21, Criteria:="<30%" & ">0" 

做到这一点的方法是把xlAnd运算符放在两个不同的标准中

 Selection.AutoFilter field:=21, Criteria1:=">0", Operator=xlAnd, Criteria2 = "<0.3" 

另外, AutoFilter方法中没有参数Criteria 。 它是Criteria1和可选的另一个参数Criteria2 (在代码中的其他位置更改CriteriaCriteria1 )。

使用Selection是有害的,并且是错误的来源。 你应该真的尝试重写你的代码没有Selection东西。 看看如何避免在Excel VBAmacros中使用select