这是一个恼人的问题。我在Excel电子表格中有一个枢轴表,它直接从SQL Server查询获取其数据。

表在垂直轴上有客户,以及水平访问的日期。两者都需要正确地排序 - 即客户在从左到右的左右排列到底部和日期。

我确保从SQL出来的数据被Excel识别为日期字段。您可以使用手动A-Z函数成功对日期进行排序。但我需要使用VBA自动进行。

我希望(againt hoppe)在SQL查询上使用两个排序参数可能会做这个技巧:

sql = "SELECT * FROM myView ORDER BY Customer, Date"

Set pt = Worksheets("MyReport").PivotTables("MyPivot")
pt.PivotCache.CommandText = sql
pt.RefreshTable
.

但它没有。

我看到比在Excel 2010之上,有一个方便的autosort函数,应该做我需要的东西。但我陷入了2007年。有没有办法在两种维度中对我的数据进行排序?

有帮助吗?

解决方案

拒绝Excel 2007中有一个AutoSort功能,但它属于Pivotfields对象,而不是枢轴表本身。

Dim pt As PivotTable
Set pt = Worksheets("myWorksheet").PivotTables("myPivotTable")
pt.PivotFields("DATE").AutoSort xlAscending, "DATE"
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top