Ordenar automáticamente la tabla de pivote con conexión a datos en dos dimensiones en Excel 2007 usando VBA

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

  •  26-12-2019
  •  | 
  •  

Pregunta

Aquí hay un problema molesto.Tengo una tabla de pivote en una hoja de cálculo de Excel que obtiene sus datos directamente desde una consulta de SQL Server.

La tabla tiene clientes en el eje vertical y las fechas en el acceso horizontal.Ambos deben ser ordenados correctamente, es decir, los clientes como la parte superior alfabética a la parte inferior y las fechas en la fecha de la fecha de izquierda a derecha.

Me he asegurado de que los datos que salen de SQL sean reconocidos por Excel como un campo de fecha.Puede ordenar las fechas con éxito utilizando la función manual A-Z.Pero necesito hacerlo automáticamente usando VBA.

Había esperado (Agigir Hope) que usar dos parámetros de clasificación en la consulta SQL podría hacer el truco:

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

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

pero no lo hace.

Veo que en Excel 2010 En adelante, hay una función de autosort útil que debería hacer lo que necesito.Pero estoy atascado con 2007. ¿Hay alguna manera de ordenar mis datos en ambas dimensiones?

¿Fue útil?

Solución

Resulta que hay una función de AutoSort en Excel 2007, pero pertenece al objeto Pivotfields, en lugar de la tabla de pivote.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top