VBA XLS Autofilter标准不等于零,但我想testing一个公式的结果

我试图过滤E列(公式)为0的结果的所有行。我想我很接近。 此工作表是另一张工作表上的数据透视表的结果,我希望它在刷新数据透视表时始终生效。 现在,问题的范围是在公式中显示哪里不是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() 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 

这将更新正确工作表中的所有数据透视表,并在您想要filter的工作表中应用一个filter。

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

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