我们如何使用 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