Автоматически сортировать таблицу Pivot с передачей данных в двух измерениях в Excel 2007 с использованием VBA
Вопрос
Вот раздражающая проблема.У меня есть таблица Pivot в электронной таблице Excel, которые получают свои данные от запроса SQL Server.
Таблица имеет клиенты на вертикальной оси и даты на горизонтальном доступе.Оба должны быть правильно отсортированы - то есть клиенты как алфавитные сверху вниз и даты в порядке даты слева направо.
Я гарантировал, что данные, выходящие из SQL, распознаются Excel в качестве поля даты.Вы можете успешно отсортировать даты, используя ручную функцию A-Z.Но мне нужно сделать это автоматически с помощью VBA.
Я надеялся (avaint Hope), что используя два параметра сортировки на запросе SQL, могут сделать трюк:
sql = "SELECT * FROM myView ORDER BY Customer, Date"
Set pt = Worksheets("MyReport").PivotTables("MyPivot")
pt.PivotCache.CommandText = sql
pt.RefreshTable
.
Но это не так.
Я вижу, чем в Excel 2010, то есть удобная функция автосорбирования, которая должна делать то, что мне нужно.Но я застрял с 2007 года. Есть ли способ сортировать свои данные в обоих габаритах?
Решение
Оказывается, есть функция автосорбирования в Excel 2007, но она принадлежит к объекту Pivotfields, а не сам таблицу Pivot.
Dim pt As PivotTable
Set pt = Worksheets("myWorksheet").PivotTables("myPivotTable")
pt.PivotFields("DATE").AutoSort xlAscending, "DATE"
.