Range.AutoFilter方法(Excel)

时间:2014-11-21 15:56:40

标签: autofilter

我正在使用这样的代码:

Sheets("1").Select
Range("A1:Z100").Select
Selection.Autofilter
Worksheets("Sheet1").Range("$A$1:$Z$100").AutoFilter field:=1, Criteria1:=String1
Worksheets("Sheet1").Range("$A$1:$Z$100").AutoFilter field:=2, Criteria1:=String2
Range("A1:Z100").Select
Selection.Copy
Sheets("2").Select
Range("A1").Select
ActiveSheet.Paste

(先前已定义String1和String2)

我在循环中使用此代码,并且它在大多数情况下都有效。但是,有时它不会......

当没有符合这两个条件的结果时,它会在粘贴时给我过滤范围内的所有内容,而不是粘贴空单元格。

真正令人讨厌的部分是我在另一个电子表格中有或多或少相同的代码,其工作正是这样 - 当查询没有命中时,我什么都没有。

1 个答案:

答案 0 :(得分:0)

'删除“$”符号后试一试。

Sheets("1").Select
Range("A1:Z100").Select
Selection.Autofilter
Worksheets("Sheet1").Range("A1:Z100").AutoFilter field:=1, Criteria1:=String1
Worksheets("Sheet1").Range("A1:Z100").AutoFilter field:=2, Criteria1:=String2

Range("A1:Z100").SpecialCells(xlCellTypeVisible).Select

Selection.Copy
Sheets("2").Select
Range("A1").Select
ActiveSheet.Paste

'你必须复制可见的单元格