Автоматически сортировать таблицу Pivot с передачей данных в двух измерениях в Excel 2007 с использованием VBA

StackOverflow https://stackoverflow.com//questions/23058352

  •  26-12-2019
  •  | 
  •  

Вопрос

Вот раздражающая проблема.У меня есть таблица 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"
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top