我有一个数据透视表和一个简单的按钮,当按下它们时,我希望它将数据透视表DataField从“ Pax”更改为“ Total Revenue”。然后将最大到最小排序。 当下面的脚本只是一个普通的数据透视表时,下面的脚本可以正常工作,但是现在我已将其从数据模型更改为数据透视表,并且VBA无法正常工作。
我相信我需要将VBA代码更改为.CubeFields等,但之前从未做过,所以我非常迷失。
私人子CommandButton1_Click()
Dim pt1 As PivotTable
Dim Field1 As PivotField
Dim pi As PivotItem
Dim sumField As String
sumField = Range("AO5").Value
'-----Pivot1-----
Set pt1 = PivotTables("PivotTable1")
pt1.DataFields(1).Orientation = xlHidden
pt1.PivotFields(sumField).Orientation = xlDataField
pt1.AllowMultipleFilters = True
pt1.RefreshTable
If sumField = "Total Revenue" Then
ActiveSheet.PivotTables("PivotTable1").PivotFields("Main Tour Code").AutoSort _
xlDescending, "Sum of Total Revenue", ActiveSheet.PivotTables("PivotTable1"). _
PivotColumnAxis.PivotLines(1), 1
Else
ActiveSheet.PivotTables("PivotTable1").PivotFields("Main Tour Code").AutoSort _
xlDescending, "Sum of Pax", ActiveSheet.PivotTables("PivotTable1"). _
PivotColumnAxis.PivotLines(1), 1
End If
结束子
如果DataField / CubeField当前显示“ Pax”,则“ AO5”单元格将显示“总收入”,反之亦然。
数据透视表在第二列中显示Pax /总收入,第一列显示“主要游览代码”
数据透视表从数据模型[BookingsTable]馈入
我已经阅读了各种论坛,并尝试了许多事情,但是没有任何效果,我真的需要帮助。
示例文件在这里: https://drive.google.com/open?id=1ipEGhcZIiscWWy6HzWWdAomt7nATDQDA
非常感谢:) CM