根据date对Excel数据透视表项进行sorting

编辑:解决了它! 目前还不能提出解决scheme。

我有一个“date”rowfield的pivottable。 我需要一个从最早的date到最新的VBA代码。

我需要的date是AUS格式,即。 dd / mm / yyyy或dmmm yyyy或类似。 这是Excel没有正确sorting的时候。

所以,让我们说pivotfield“date”有以下的枢纽项目:

01 Jan 2012 30 Apr 2012 (blank) 03 Feb 2013 14 Feb 2012 22 Nov 2012 

正确的顺序是:

 01 Jan 2012 14 Feb 2012 30 Apr 2012 22 Nov 2012 03 Feb 2013 (blank) 

我想我越来越近,但还是没有运气。

 Dim pi As PivotItem Dim pfd As PivotField Dim pt As PivotTable Set pfd = pt.PivotFields("Snapshot Date") For Each pi In pfd.PivotItems pi = CDate(pi) 'converts to US date for sorting Next pi pfd.AutoSort _ xlAscending, "Snapshot Date" For Each pi In pfd.PivotItems pi = Format(pi, "d mmm yyyy") 'converts to AUS Next pi 

谢谢你的帮助。 Ramify

我想你不必为此创build一个macros。 select你的date,右键 – >单元格格式 – >date – >select你想要的date格式。

然后进行sorting,select您想要sorting的所有行,进入数据/sorting,select与您的date和sorting顺序(升序/降序)的列,然后单击确定。

你的date应该sorting;)

编辑:当你使用一个macros,尝试这样的事情

 Set pfd = pt.PivotFields("Snapshot Date") pfd.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlYes