VBA를 사용하여 Excel 2007의 두 차원에서 데이터 바인딩 피벗 테이블을 자동으로 정렬합니다.

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

  •  26-12-2019
  •  | 
  •  

문제

여기에 성가신 문제가 있습니다.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"
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top