【问题标题】:Excel 2013 VBA Pivot Table Select Only Top 5 Items With TiesExcel 2013 VBA 数据透视表仅选择前 5 项与领带关系
【发布时间】:2018-01-25 00:57:40
【问题描述】:

我正在尝试找到一种方法来使用 Excel 2013 VBA 仅选择数据透视表中的前 5 个项目。我尝试了以下代码行,试图仅显示前 5 项:

Dim c
dim i as long

Worksheets("sheet1").PivotTables(1).PivotFields ("field1")
ActiveSheet.PivotTables(1).PivotFields("field1").CurrentPage = "(All)"
With ActiveSheet.PivotTables(1).PivotFields("field1")
c = 5
For i = .PivotItems.Count To 1 Step -1
If (c > 0) Then
.PivotItems(i).Visible = True
Else
.PivotItems(i).Visible = False
End If
c = c - 1
Next
End With

这是宏记录器给我的代码,但不起作用:

ActiveSheet.PivotTables("PivotTable5").PivotFilters. _
.PivotFields("field1") Add2 Type:=xlTopCount, _        DataField:=ActiveSheet.PivotTables("PivotTable5"). _
    PivotFields("fied1"), Value1:=5

如果不在前 5 名列表中的任何值没有值关系,则下面的代码可以正常工作。使用我们的数据集,我们总是会在前 5 名列表中并列。

With Workbooks(cFileName).Worksheets("sheet1")
.PivotTables(1).PivotFields("Field1").PivotFilters.Add2     
xlTopCount, .PivotTables(1).PivotFields("Field1"), 5
End With

编辑: 数据透视表列表将显示一些项目被选中,但没有数据与这些值相关联。基于这些数据透视表的图表是空白的,下面的代码只选择字段中的底部 5 个值,就像它在原始帖子中所做的那样。

With workbook.Worksheets("sheet1").PivotTables("PivotTable2").PivotFields
("Count of Description")

For Each WS In ActiveWorkbook.Worksheets
For Each pvt In WS.PivotTables

c = 5

For i = .PivotItems.Count To 1 Step -1
If (c > 0) Then
.PivotItems(i).Visible = True
Else
.PivotItems(i).Visible = False
End If
c = c - 1
Next
Next
Next

End With

【问题讨论】:

    标签: excel pivot-table excel-2013 pivotitem vba


    【解决方案1】:

    我终于想通了。以防万一其他人想知道,最好的方法是在您录制宏时:

    1. 选择要开始查看数据的单元格。就我而言,它是“B10”。其他人的情况会有所不同,具体取决于您的数据透视表数据的位置。
    2. 按 SHIFT + END + DOWN ARROW 键可向下移动到使用范围的底部。
    3. 选择所有要隐藏的行。
    4. 右键单击要隐藏的值。
    5. 从列表中选择“过滤器”。
    6. 单击“隐藏所选项目”。

    下面是我以后会参考的代码。

    Application.Goto reference:=Workbooks("File").Sheets("Sheet1").Range("B10")
    If IsEmpty(Range("B11").value) = False Then
    Range("B10").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete
    Else
    End If
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 1970-01-01
      相关资源
      最近更新 更多