遍历数据透视表并删除相同的值
Posted
技术标签:
【中文标题】遍历数据透视表并删除相同的值【英文标题】:Loop Through Pivot Tables And Remove Same Values 【发布时间】:2017-07-10 00:17:03 【问题描述】:我正在尝试遍历工作表中的所有数据透视表,并删除其中所有具有相同名称的值字段:“总净支出”和“拆分百分比”(参见图片以供参考)。
我正在尝试下面的代码,但它只适用于第一个枢轴并且不会循环遍历所有这些。如何编辑代码以删除工作表中所有数据透视表上的“总净支出”和“拆分百分比”列?
Sub Loop_Pivots()
Dim PT As PivotTable, PTField As PivotField
Set PT = Sheets("Sheet1").PivotTables("Pivot1")
With PT
.ManualUpdate = True
For Each PTField In .DataFields
PTField.Orientation = xlHidden
Next PTField
.ManualUpdate = False
End With
Set PT = Nothing
End Sub
【问题讨论】:
【参考方案1】:要循环通过PivotTables
尝试另一个for
each
像这样循环
Sub Loop_Pivots()
Dim PT As PivotTable, PTField As PivotField
For Each PT In Sheets("Sheet1").PivotTables
With PT
.ManualUpdate = True
For Each PTField In .DataFields
PTField.Orientation = xlHidden
Next PTField
.ManualUpdate = False
End With
Next PT
Set PT = Nothing
End Sub
【讨论】:
刚试了但是弹出一个错误说:无法设置PivotField类的orientation属性...【参考方案2】:试试下面的代码:
Option Explicit
Sub Loop_Pivots()
Dim PT As PivotTable
Dim PTField As PivotField
For Each PT In Sheets("Sheet1").PivotTables
With PT
.ManualUpdate = True
For Each PTField In .PivotFields '<-- loop through all pivot fields
Select Case PTField.Name
Case "Total Net Spend", "% Split" '<-- if Field Name equals on of the 2 in this case
PTField.Orientation = xlHidden
End Select
Next PTField
.ManualUpdate = False
End With
Set PT = Nothing
Next PT
End Sub
【讨论】:
感谢您的帮助,但这段代码没有任何反应......使用原始代码,我能够在第一个枢轴上摆脱“Total Net Spend”和“% Split”,但它不会t 循环遍历剩余的枢轴... @Andrea 奇怪,为我工作。它是否返回错误?以上是关于遍历数据透视表并删除相同的值的主要内容,如果未能解决你的问题,请参考以下文章