如何为 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")、PivotItems("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 个月,您可能会遇到数据完整性问题。
根据截图,我想扩大月份的选择,只针对当前月份:
这里是代码,是静态的,因为我是根据当月手动调整的:
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")、PivotItems("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 个月,您可能会遇到数据完整性问题。