按照VBA的最后一列降序排列excel 2007数据透视表

多谢你们! 我想我可能已经解释了我的问题有点模糊。 我附上了两个打印屏幕来说明我的问题。

打印屏幕: http : //imageshack.us/photo/my-images/804/illustrasjon.jpg

由于生产线上的指定原因,我的数据透视表显示了停止[分钟]。 本周的“Totalt”专栏(生产天数有所不同)是我希望关注的,以便将改善工作分配到正确的位置。 sorting将由我的其他人每天执行,他们确实应该有一个button,而不是通过选项栏sorting。

NB! “总和”列不是数据透视表的一部分。 这只是一个固定列的“Totalt”列的计算,以便创build一个sorting结果的扇区图,因为无法从“Totalt”列创build数据透视图。

“每日标价”栏只是每天(分钟)的目标,我希望在这个目标范围内保持特定原因的生产停止,所以这应该被排除在“Totalt”列之外,但这并不重要。


我有一个数据透视表,显示了从一到五天的任何天数。 因此总结这些日子的价值的总列因此是“移动的”,这就是为什么我不能简单地logging一个macros。 我想创build一个macros,按照总列降序排列数据透视表。

我不会说VBA的国际语言,但想象一下这样做的人相当容易。

非常感谢任何愿意为我写代码的人!

最好的问候,汉斯

汉斯

首先,您应该使用数据透视表中的内置sortingfunction,如下面的截图所示。

在这里输入图像说明

select您想要sorting的列:

在这里输入图像说明

这对你来说可能有点问题,因为数据透视表在数据改变时不会自动刷新。 如果您希望实时更新,则需要将“Worksheet_Change”事件处理程序添加到VBA代码中。 为此,请按Alt + F11以调出VBA,并在包含源数据的工作表上input以下内容:

Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False PivotTables("PivotTable1").RefreshTable Application.EnableEvents = True End Sub 

这里“PivotTable1”将会改变,以匹配数据透视表的名字。 当您select透视表时,此名称将显示在function区中。

在这里输入图像说明

现在,当您更改数据时,表格会自动重新sorting。

在这里输入图像说明

汉斯,欢迎来到SO。 您没有指定标签中的哪个版本的Excel,但是这里有一些Excel 2007解决scheme。

这是可能的(也是有帮助的!)在没有VBA的情况下做到这一点。 您可能对此解决scheme感兴趣。

我build议您select数据透视表的范围与总计,排除标题和总计,然后去数据选项卡,并selectsortingZ-> A。 这将按降序对总数进行sorting(当然,将标题更改为左侧)。

如果您想定期执行此类操作,您也可以录制一个macros来执行此操作,但这可能比它的价值更麻烦。