我们如何使用 vba 从 excel 数据透视过滤器中 select 最后三个选项,我添加了 snap
how we can select last three options from a excel pivot filter using vba, i added the snap
enter image description here 与 ActiveSheet.PivotTables("FPivot_table").PivotFields("主要供应商名称")
.Orientation = xlPageField
.位置= 1
结束于
添加了“主要供应商名称”作为过滤器,在这个过滤器中我们有超过 5 个值,它会有所不同,但需要在过滤器中选择最后 3 个选项,我尝试使用 itration 没有得到预期的结果
我完全误解了我第一个答案中的问题并删除了那个。
对于用作过滤器的 PivotFields
,您可以通过更改每个 PivotItem
的 .Visible
属性 来更改显示的项目。要在更改过滤器时使 table 正确刷新,您必须在进行任何更改之前重置该字段,您可以使用 PivotField.CurrentPage = "(All)"
您可以这样做:
Sub Example()
Dim ws as Worksheet
Set ws = Worksheets("MySheet")
Dim pT As PivotTable
Set pT = ws.PivotTables("MyPivotTable")
Dim pF As PivotField
Set pF = pT.PivotFields("MyPivotField")
pF.EnableMultiplePageItems = True
pF.CurrentPage = "(All)"
For i = 1 To pF.PivotItems.Count
If i < pF.PivotItems.Count - 2 Then
pF.PivotItems(i).Visible = False
Else
pF.PivotItems(i).Visible = True
End If
Next i
End Sub
enter image description here 与 ActiveSheet.PivotTables("FPivot_table").PivotFields("主要供应商名称") .Orientation = xlPageField .位置= 1 结束于
添加了“主要供应商名称”作为过滤器,在这个过滤器中我们有超过 5 个值,它会有所不同,但需要在过滤器中选择最后 3 个选项,我尝试使用 itration 没有得到预期的结果
我完全误解了我第一个答案中的问题并删除了那个。
对于用作过滤器的 PivotFields
,您可以通过更改每个 PivotItem
的 .Visible
属性 来更改显示的项目。要在更改过滤器时使 table 正确刷新,您必须在进行任何更改之前重置该字段,您可以使用 PivotField.CurrentPage = "(All)"
您可以这样做:
Sub Example()
Dim ws as Worksheet
Set ws = Worksheets("MySheet")
Dim pT As PivotTable
Set pT = ws.PivotTables("MyPivotTable")
Dim pF As PivotField
Set pF = pT.PivotFields("MyPivotField")
pF.EnableMultiplePageItems = True
pF.CurrentPage = "(All)"
For i = 1 To pF.PivotItems.Count
If i < pF.PivotItems.Count - 2 Then
pF.PivotItems(i).Visible = False
Else
pF.PivotItems(i).Visible = True
End If
Next i
End Sub