如何禁用Excel Pivot Tables(数据透视表)的自动排序功能?
禁用Excel透视表自动排序,保留数据源原始顺序
要让透视表保留数据源的原始顺序,只需在设置完透视表字段方向后,为行/列字段设置手动排序即可。Excel默认会对透视表的行、列字段自动升序排序,通过PivotField.AutoSort方法指定排序类型为xlManual,就能禁用自动排序并保留原始顺序。
修改后的完整VBA代码
Set pvtC = wb.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=stageWs.Range("A1:L" & dataWsLastRow), _ Version:=xlPivotTableVersion15) Set pvtT = pvtC.CreatePivotTable(TableDestination:=stageWs.Range("N1"), TableName:="Staging Area") With pvtT .ColumnGrand = False .RowGrand = False .PivotFields("Depth, ft").Orientation = xlColumnField .PivotFields("Number").Orientation = xlRowField .PivotFields("Pr").Orientation = xlDataField .PivotFields("SW").Orientation = xlDataField ' 禁用自动排序,保留数据源原始顺序 .PivotFields("Number").AutoSort xlManual, "Number" .PivotFields("Depth, ft").AutoSort xlManual, "Depth, ft" End With
关键说明
xlManual参数会强制Excel放弃自动排序逻辑,完全遵循数据源中字段值的出现顺序- 需要为每个需要保留顺序的行/列字段单独设置该属性(示例中为行字段
Number和列字段Depth, ft)
内容的提问来源于stack exchange,提问作者aaadetos
相关产品推荐
相关产品推荐

