使用带标准的高级过滤器

时间:2016-07-04 15:02:30

标签: excel vba excel-vba filtering

我正在尝试使用VBA从excel表中复制不同的值,但是当我想为其分配条件时,我遇到了麻烦。

我正在尝试过滤列CI

中大于零的值

此代码可以正常工作

Dim KeyCells As Range
Set KeyCells = Range("H1")        
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then    
Dim lastrow As Long    
lastrow = ActiveSheet.Range("H1").Value
Application.EnableEvents = False
    Sheets("Fond16").Range("C4:C31").Clear
    Sheets("PlneniOperatoru_2016").Range("B" & lastrow - 1 & "11:B" & lastrow & "11").AdvancedFilter _
    Action:=xlFilterCopy,  _
    CopyToRange:=Sheets("Fond16").Range("C4"), _
    Unique:=True

但这不起作用(将抛出1004:应用程序定义或对象定义的错误)

Sheets("PlneniOperatoru_2016").Range("B" & lastrow - 1 & "11:B" & lastrow & "11").AdvancedFilter _
Action:=xlFilterCopy, Criteria:="CI>0", _
CopyToRange:=Sheets("Fond16").Range("C4"), _
Unique:=True

我很想知道如果我能以某种方式改写Criteria参数以使其正常工作。在此先感谢:)

编辑:我目前正在尝试使用此代码,在条件范围内

CI
>0

它只显示第一个值,但有时第一个值在CI列中为0,因此标准显然不起作用

Sheets("PlneniOperatoru_2016").Range("B" & lastrow - 1 & "11:B" & lastrow & "11").AdvancedFilter _
    Action:=xlFilterCopy, CriteriaRange:=Sheets("2016").Range("X1:X2"), _
    CopyToRange:=Sheets("Fond16").Range("C4:C31"), _
    Unique:=False

0 个答案:

没有答案