vba自动筛选器大于/小于0

时间:2018-06-29 08:56:12

标签: vba excel-vba excel

我想过滤那些正数,删除过滤器,然后过滤负数,然后再次删除过滤器。

我使用此代码,但这不起作用。

Selection.AutoFilter Field:=7, Criteria1:=">0"
Selection.AutoFilter Field:=7, Criteria1:="<0"

能请你帮忙吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这将:

  1. 检查是否已应用过滤器。如果没有,请打开过滤器
  2. 应用过滤器1(>0
  3. 删除过滤器
  4. 应用过滤器2(<0
  5. 删除过滤器

按原样,代码只是应用过滤器,然后将其关闭。这意味着您在运行代码时不会看到任何事情。如果您使用(F8遍历代码,然后删除ScreenUpdating = False,您将看到工作表上发生的所有事情。


Option Explicit

Sub Filter()
Application.ScreenUpdating = False

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1") 'Put your sheet name inside the quotes

With ws
  If Not .AutoFilterMode Then .Range("G1").AutoFilter

     'First Critiera
     .Range("G1").AutoFilter Field:=7, Criteria1:=">0"
         'Do what you want with your filtered data here
     .AutoFilterMode = False

     'Second Criteria
     .Range("G1").AutoFilter Field:=7, Criteria1:="<0"
         'Do what you want with your filtered data here
     .AutoFilterMode = False
End With

Application.ScreenUpdating = True
End Sub