Ordina automaticamente la tabella pivot rilegata ai dati in due dimensioni in Excel 2007 utilizzando VBA

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

  •  26-12-2019
  •  | 
  •  

Domanda

Ecco una questione fastidiosa.Ho un tavolo per pivot in un foglio di calcolo Excel che ottiene i suoi dati direttamente da una query SQL Server.

La tabella ha clienti sull'asse verticale e date sull'accesso orizzontale.Entrambi devono essere ordinati correttamente - I.e. Clienti come superiore alfabetico in basso e date in data Ordine da sinistra a destra.

Ho assicurato che i dati che escono da SQL siano riconosciuti da Excel come campo di data.È possibile ordinare le date utilizzando correttamente la funzione A-Z manuale.Ma ho bisogno di farlo usando automaticamente VBA.

Avevo sperato (ancora una speranza) che usare due parametri di smistamento sulla query SQL potrebbe fare il trucco:

sql = "SELECT * FROM myView ORDER BY Customer, Date"

Set pt = Worksheets("MyReport").PivotTables("MyPivot")
pt.PivotCache.CommandText = sql
pt.RefreshTable
.

Ma non lo fa.

Vedo che in Excel 2010 in poi c'è una pratica funzione di autosort che dovrebbe fare ciò di cui ho bisogno.Ma sono bloccato con il 2007. C'è un modo per ordinare i miei dati in entrambe le dimensioni?

È stato utile?

Soluzione

si scopre che c'è una funzione AutoSort in Excel 2007, ma appartiene all'oggetto Pivotfields, piuttosto che al tavolo perno stesso.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top