VBA XLS自动筛选条件不等于零,但I';I’我想测试一个公式的结果

VBA XLS自动筛选条件不等于零,但I';I’我想测试一个公式的结果,vba,excel,Vba,Excel,我试图过滤掉工作表中E列(公式)结果为0的所有行。我想我很接近了。此工作表是另一个工作表上透视表的结果,我希望它在透视刷新时始终生效。现在,问题的范围是在公式上显示where而不是0 Sub HideIfZero() Dim LastRow As Long ActiveWorkbook.Sheets("Results").Activate ActiveSheet.AutoFilterMode = False With Worksheets("Results") .R

我试图过滤掉工作表中E列(公式)结果为0的所有行。我想我很接近了。此工作表是另一个工作表上透视表的结果,我希望它在透视刷新时始终生效。现在,问题的范围是在公式上显示where而不是0

Sub HideIfZero()
  Dim LastRow As Long

  ActiveWorkbook.Sheets("Results").Activate 
  ActiveSheet.AutoFilterMode = False

  With Worksheets("Results")
    .Range("$A:$G").AutoFilter
    .Range("$A:$G").AutoFilter field:=5, Criteria1:="<>0" 'this isn't working in the NOT select

    LastRow = .Range("A" & .Rows.Count).End(xlUp).Row    
  End With 
End Sub
Sub-HideIfZero()
最后一排一样长
ActiveWorkbook.Sheets(“结果”)。激活
ActiveSheet.AutoFilterMode=False
带工作表(“结果”)
.Range(“$A:$G”)。自动筛选
.Range(“$A:$G”)。自动筛选字段:=5,标准1:=“0”'这在“不选择”模式下不起作用
LastRow=.Range(“A”&.Rows.Count).End(xlUp).Row
以
端接头
尝试以下操作:

Sub HideIfZero()

    Dim PivotSht As Worksheet, WS As Worksheet
    Dim LastRow As Long, PT As PivotTable

    With ThisWorkbook
        Set PivotSht = .Sheets("ModifyMe") 'Modify to suit.
        Set WS = .ActiveSheet
    End With

    For Each PT In PivotSht.PivotTables
        PT.RefreshTable
    Next PT

    With WS
        .AutoFilterMode = False
        With .Range("A:G")
            .AutoFilter Field:=5, Criteria1:="<>0"
        End With
        LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
        Debug.Print LastRow
    End With

End Sub
Sub-HideIfZero()
Dim PivotSht作为工作表,WS作为工作表
调整最后一行的长度,PT作为数据透视表
使用此工作簿
设置PivotSht=.Sheets(“ModifyMe”)“修改以适应。
设置WS=.ActiveSheet
以
对于数据透视表中的每个PT
茶几
下一个PT
与WS
.AutoFilterMode=False
带.Range(“A:G”)
.自动筛选字段:=5,标准1:=“0”
以
LastRow=.Range(“A”&.Rows.Count).End(xlUp).Row
调试。打印最后一行
以
端接头
这将更新适当工作表中的所有透视表,并在工作表中需要筛选的位置应用筛选

正如@andy holaday所提到的,这将适用于等于非零(您的条件)的硬值和公式计算值


让我们知道这是否有帮助。

它对我有效(=0行被过滤器隐藏),包括硬编码的值和列E中的公式。它现在仍然对我有效,可能是因为公式。公式如下=(IFERROR(GETPIVOTDATA(specific stuff),0))。GETPIVOTDATA或IFERROR是否会弄乱比较?如果我在硬编码的0上进行比较,效果会很好。谢谢你的帮助。在我问之前,我真的付出了很多努力。BK201说的是对的。在我的例子中,它有时因为小数而起作用(或不起作用)。它们看起来像零,但已经四舍五入了。所以0不起作用。好吧,这就是答案。谢谢