我在Excel 2013中的数据透视表上工作,其中有许多需要激活的值列(超过100个)。我试图改写我在Internet中找到的宏,选择所有剩余字段作为值。但是,我处理的数据透视表已添加到数据模型中(不在Power Pivot中),因此该宏不起作用。
我在下面的宏上工作:
Sub AllFieldInPivotAsValues()
Dim pt As PivotTable
Dim I As Long
For Each pt In ActiveSheet.PivotTables
For I = 1 To pt.PivotFields.Count
With pt.PivotFields(I)
If .Orientation = 0 Then .Orientation = xlDataField
End With
Next
Next
End Sub
我也尝试记录一个宏,并且我注意到使用数据模型数据透视表时该列的路径已扩展。就像这样:
ActiveSheet.PivotTables("PivotTable5").CubeFields.GetMeasure _
"[Spends].[201512]", xlSum, "Sum of 201512 2"
ActiveSheet.PivotTables("PivotTable5").AddDataField ActiveSheet.PivotTables( _
"PivotTable5").CubeFields("[Measures].[Sum of 201512 2]"), "Sum of 201512"
到目前为止,这对我来说太复杂了。然后,我需要您的建议以创建一个循环,该循环将与基于数据模型的数据透视表一起使用。预先感谢您的帮助。