VBA를 사용하여 Excel 2007의 두 차원에서 데이터 바인딩 피벗 테이블을 자동으로 정렬합니다.
문제
여기에 성가신 문제가 있습니다.SQL Server 쿼리에서 데이터를 직접 가져 오는 Excel 스프레드 시트에 Pivot 테이블이 있습니다.
테이블에는 수직 축이 있으며 수평 액세스의 날짜가 있습니다.올바르게 정렬 될 필요가 있습니다 - 즉, 고객은 왼쪽에서 오른쪽으로 날짜 순서로 알파벳 순위 및 날짜입니다.
SQL에서 나오는 데이터가 Excel에서 날짜 필드로 인식되도록 보장했습니다.수동 A-Z 기능을 사용하여 날짜를 성공적으로 정렬 할 수 있습니다.그러나 VBA를 사용하여 자동으로 수행해야합니다.
SQL 쿼리에서 두 개의 정렬 매개 변수를 사용하는 것은 트릭을 수행 할 수있는 (Againt Hope)를 희망했습니다.
sql = "SELECT * FROM myView ORDER BY Customer, Date"
Set pt = Worksheets("MyReport").PivotTables("MyPivot")
pt.PivotCache.CommandText = sql
pt.RefreshTable
.
하지만 그렇지 않습니다.
Excel 2010 Onwords보다 볼 수있는 핸디 오토 토트 기능이 있습니다.그러나 나는 2007 년에 붙어 있습니다. 두 차원에서 내 데이터를 정렬하는 방법이 있습니까?
해결책
Excel 2007에서 자동 저장 기능이 있지만 피벗 테이블 자체가 아닌 PivotFields 객체에 속합니다.
Dim pt As PivotTable
Set pt = Worksheets("myWorksheet").PivotTables("myPivotTable")
pt.PivotFields("DATE").AutoSort xlAscending, "DATE"
. 제휴하지 않습니다 StackOverflow