Ordenar automaticamente vinculado a dados de tabela dinâmica em duas dimensões no Excel 2007 com VBA

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

  •  26-12-2019
  •  | 
  •  

Pergunta

Aqui está um irritante problema.Eu tenho uma tabela dinâmica em uma planilha do Excel que obtém seus dados direto de uma consulta SQL server.

A tabela clientes no eixo vertical, e as datas na horizontal de acesso.Ambos precisam ser corretamente classificados - i.e.clientes como alfabética de cima para baixo e as datas em ordem de data, da esquerda para a direita.

Eu já assegurado que os dados provenientes de SQL é reconhecido pelo EXcel como um campo de data.Você pode classificar as datas com êxito utilizando o manual de A A Z da função.Mas eu preciso fazer isso automaticamente usando VBA.

Eu esperava (contra a esperança) de que a utilização de dois parâmetros de classificação no SQL query pode fazer o truque:

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

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

Mas não.

Eu vejo que em Excel a partir de 2010, há uma prática de Ordenação da função que deve fazer o que eu preciso.Mas eu estou preso com 2007.Existe uma maneira de classificar meus dados em ambas as dimensões?

Foi útil?

Solução

Acontece que há um recurso de Autoclassificação no Excel 2007, mas ele pertence ao PivotFields objeto, em vez de tabela dinâmica própria.

Dim pt As PivotTable
Set pt = Worksheets("myWorksheet").PivotTables("myPivotTable")
pt.PivotFields("DATE").AutoSort xlAscending, "DATE"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top