我正在尝试过滤出E(公式)列的结果为0的所有行。我想我已经接近了。此工作表是另一个工作表上的数据透视表的结果,我希望它在刷新数据透视图时始终生效。现在,问题的范围是在公式上显示Not 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
答案 0 :(得分:1)
尝试以下方法:
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
这将更新正确工作表中的所有数据透视表,并在工作表中应用过滤器所在的过滤器。
如@andy holaday所述,这将适用于硬值和公式计算值等于非零(您的条件)。
如果有帮助,请告诉我们。