【问题标题】:Automatically sort data-bound pivot table in two dimensions in Excel 2007 using VBA使用 VBA 在 Excel 2007 中自动对数据绑定数据透视表进行二维排序
【发布时间】:2014-04-14 10:59:00
【问题描述】:

这是一个烦人的问题。我在 Excel 电子表格中有一个数据透视表,它直接从 SQL 服务器查询中获取数据。

表格的纵轴是客户,横轴是日期。两者都需要正确排序 - 即客户按字母顺序从上到下,日期按日期顺序从左到右。

我已确保 EXcel 将来自 SQL 的数据识别为日期字段。您可以使用手动 A-Z 功能成功对日期进行排序。但我需要使用 VBA 自动完成。

我曾希望(再次希望)在 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 年困住了。有没有办法在两个维度上对我的数据进行排序?

【问题讨论】:

    标签: sql vba excel


    【解决方案1】:

    原来 Excel 2007 中有一个自动排序功能,但它属于 PivotFields 对象,而不是数据透视表本身。

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

    【讨论】:

      猜你喜欢
      • 2015-05-07
      • 2019-07-01
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      • 2015-01-09
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多