如何为 PivotFields("Month") 创建一个动态的 PivotItems ShowDetail = True?

How to create a dynamic PivotItems ShowDetail = True for PivotFields("Month")?

根据截图,我想扩大月份的选择,只针对当前月份:

这里是代码,是静态的,因为我是根据当月手动调整的:

Workbooks("NameOfWorkbook.xlsx").Sheets("NameOfWorksheet").PivotTables("PivotTableName").PivotFields("Month").PivotItems("Jan").ShowDetail = False

Workbooks("NameOfWorkbook.xlsx").Sheets("NameOfWorksheet").PivotTables("PivotTableName").PivotFields("Month").PivotItems("Feb").ShowDetail = False

Workbooks("NameOfWorkbook.xlsx").Sheets("NameOfWorksheet").PivotTables("PivotTableName").PivotFields("Month").PivotItems("Mar").ShowDetail = False

Workbooks("NameOfWorkbook.xlsx").Sheets("NameOfWorksheet").PivotTables("PivotTableName").PivotFields("Month").PivotItems("Apr").ShowDetail = False

Workbooks("NameOfWorkbook.xlsx").Sheets("NameOfWorksheet").PivotTables("PivotTableName").PivotFields("Month").PivotItems("May").ShowDetail = False

Workbooks("NameOfWorkbook.xlsx").Sheets("NameOfWorksheet").PivotTables("PivotTableName").PivotFields("Month").PivotItems("Jun").ShowDetail = False

Workbooks("NameOfWorkbook.xlsx").Sheets("NameOfWorksheet").PivotTables("PivotTableName").PivotFields("Month").PivotItems("Jul").ShowDetail = False

Workbooks("NameOfWorkbook.xlsx").Sheets("NameOfWorksheet").PivotTables("PivotTableName").PivotFields("Month").PivotItems("Aug").ShowDetail = True

由于当前月份仍然是八月,因此数据透视表中没有 PivotItems("Sep")、Pivo​​tItems("Oct") 等 Table。

问题:如何根据当前月份创建动态 PivotItems ShowDetail = True for PivotFields("Month")?

看来您需要遍历并检查名称与当前月份的对比。像这样:

    For Each m In Sheets("NameOfWorksheet").PivotTables("PivotTableName").PivotFields("Month").PivotItems
        If m.Value = Format(Now(), "MMM") Then
            m.ShowDetail = True
        Else
            m.ShowDetail = False
        End If
    Next m

请注意,图片中的设置方式没有提及年份。因此,如果您的数据涵盖的月份超过 12 个月,您可能会遇到数据完整性问题。