我正在尝试自动执行每日报告,因此我想创建两个按钮来更改三个数据透视表的过滤器。详细信息按钮应更改显示的日期。昨天的第一个过滤器第二个是重置按钮确实清除所有过滤器并显示所有日期。 “Resest”-Button正在运作,但“昨天” - 但不是。
目前宏看起来像这样:
Private Sub CommandButton2_Click()
MsgBox ActiveSheet.Range("B1")
With ActiveSheet.PivotTables("Detail_Digital").PivotFields("Tag").CurrentPage = _
ACtiveSheet.Range("B1").Value
End With
End Sub
我也尝试了PivotFilters.Add _ , Type:=xlDateYesterday
,但这也无效。
有什么建议吗?
答案 0 :(得分:0)
尝试以下代码,它应该有效,除非你的"日期"在数据透视表的数据源与Range("B1")
之间的格式不同。
注意:尽量避免使用ActiveSheet
,而是使用引用的对象。在下面的情况中,请将Worksheets("Sheet1")
替换为您的工作表名称。
<强>代码强>
Option Explicit
Private Sub CommandButton2_Click()
Dim PvtTbl As PivotTable
Dim PvtItm As PivotItem
' set the Pivot Table
Set PvtTbl = Worksheets("Sheet1").PivotTables("Detail_Digital")
With PvtTbl
.PivotFields("Tag").ClearAllFilters ' <-- clear all filters to "Tag"
'Debug.Print Worksheets("Sheet1").Range("B1").Value
For Each PvtItm In .PivotFields("Tag").PivotItems
If PvtItm.Name = Worksheets("Sheet1").Range("B1").Value Then
PvtItm.Visible = True
Else
PvtItm.Visible = False
End If
Next PvtItm
End With
End Sub