我不确定如何使用Autofilter,但我正在创建一个新的工作表,我试图根据两个标准过滤另一个工作表。然后,我需要将该工作表中仅有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
它一直给我一个运行时错误&#39; 1004&#39;。有谁知道我做错了什么或者能指引我走向正确的方向?
答案 0 :(得分:0)
Selection.AutoFilter field:=21, Criteria:="<30%" & ">0"
执行此操作的方法是使用xlAnd
运算符
Selection.AutoFilter field:=21, Criteria1:=">0", Operator=xlAnd, Criteria2 = "<0.3"
此外,Criteria
方法中没有参数AutoFilter
。它是Criteria1
,也可以是另一个参数Criteria2
(在您的代码中的其他位置将Criteria
更改为Criteria1
。
使用Selection
是危险的,也是错误的来源。您应该尝试在没有Selection
内容的情况下重写代码。看看How to avoid using Select in Excel VBA macros