编辑:解决了!!还不能提出解决方案。
我有一个带有“日期”字段的数据透视表。我需要一个VBA代码,从最旧的日期到最新的日期。
我需要日期为AUS格式,即。 dd / mm / yyyy或d mmm yyyy或类似。 这是Excel没有正确排序它们。
因此,假设pivotfield“Dates”具有以下枢轴项:
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
答案 0 :(得分:0)
我认为您不必为此创建宏。选择您的日期,右键单击 - >单元格格式 - >日期 - >选择您希望的日期格式。
然后进行排序,选择要排序的所有行,转到数据/排序,选择包含日期和排序顺序的列(升序/降序),然后单击“确定”。
您的日期应该排序;)
编辑:当你使用宏时,尝试类似的东西
Set pfd = pt.PivotFields("Snapshot Date")
pfd.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlYes