Vba 排序数据透视表

Vba 排序数据透视表,vba,excel,runtime-error,pivot,Vba,Excel,Runtime Error,Pivot,我遇到一个问题,宏指出: 运行时错误“1004”应用程序定义或对象定义错误 但我想我确实定义了它?我以前在这段代码中定义过WS1,对该部分没有任何问题。这是本节中最后一行有问题的代码 提前感谢您的帮助 'Update Pivot Table Dim GroupPivot As PivotTable Set GroupPivot = WS1.PivotTables("GroupPivot") GroupPivot.PivotCache.Refresh 'Sort Pivo

我遇到一个问题,宏指出:

运行时错误“1004”应用程序定义或对象定义错误

但我想我确实定义了它?我以前在这段代码中定义过WS1,对该部分没有任何问题。这是本节中最后一行有问题的代码

提前感谢您的帮助

'Update Pivot Table
    Dim GroupPivot As PivotTable
    Set GroupPivot = WS1.PivotTables("GroupPivot")
    GroupPivot.PivotCache.Refresh

'Sort PivotTable
    WS1.PivotTables("GroupPivot").PivotFields("Sum of Discrepancy").AutoSort Order:=xlDescending, Type:=xlSortValues
第一件事(这不是问题)是您在第三行定义了GroupPivot,但在最后一行您没有使用它。
其次(这就是问题所在),您没有使用正确的参数名称。自动排序所需的两个参数是顺序和字段。
最后一行应该如下所示:

GroupPivot.PivotFields("Sum of Discrepancy").AutoSort Order:=xlDescending, Field:="Discrepancy"
但是上面的字段名可能不正确。它应该与pivot字段的SourceName匹配第一件事(这不是问题)是您在第三行定义了GroupPivot,但在最后一行您没有使用它。
其次(这就是问题所在),您没有使用正确的参数名称。自动排序所需的两个参数是顺序和字段。
最后一行应该如下所示:

GroupPivot.PivotFields("Sum of Discrepancy").AutoSort Order:=xlDescending, Field:="Discrepancy"
但是上面的字段名可能不正确。它应该与pivot字段的SourceName匹配