2011-06-29 98 views
0

謝謝你們!我想我可能已經解釋了我的問題有點模糊。爲了說明我的問題,我附上了兩個打印屏幕。按照最後一列降序排列excel 2007數據透視表VBA

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

我的樞軸表顯示停止[分鐘],因爲在生產線上指定的原因。本週的「Totalt」專欄(生產天數有所不同)是我希望關注的,以便將改善工作分配到正確的地方。排序將由我的其他人每天執行,他們確實應該有一個按鈕,而不是通過選項欄進行排序。

注意! 'Sum'列不是數據透視表的一部分。這只是一個計算'Totalt'列到一個固定列,以便製作排序結果的扇區圖,因爲無法從'Totalt'列創建數據透視圖。

'每日標籤'欄只是每日(分鐘)的目標,我希望保持指定原因的停止生產,所以應該將其保留在'Totalt'列之外,重要。


我有一個樞軸表由周示出從一至五個任意天數過濾。因此總結了這些日子的價值的右欄總是「移動」,這就是爲什麼我不能簡單地記錄一個宏。我想創建一個宏,按照總列降序排列數據透視表。

我不說話VBA的國際語言,但是想象一下,這是相當容易的人誰做。

非常感謝任何人願意寫的代碼我!

最好的問候, 漢斯

+0

漢斯,請查看我的解決方案。它不需要用戶去調整數據透視表,它只需要你正確地排序一次。該設置被保存,然後每當一個值發生變化時,數據透視表將自動重新排序我的代碼。試試看,如果有任何不清楚的地方,請告訴我。 – Alain

回答

0

漢斯,歡迎SO。您沒有指定標籤中的哪個版本的Excel,但這裏是一些Excel 2007解決方案。

這是可能的(和有益!)這樣做沒有VBA。您可能對這款Microsoft solution感興趣。

我建議你選擇有總計的數據透視表的範圍,排除頭和總計,然後轉到數據選項卡,選擇排序Z->一個。這將按降序對總數進行排序(當然,將標題更改爲左側)。

如果您想定期執行此類排序,您也可以錄製一個宏來執行此操作,但這可能比它的價值更麻煩。

3

漢斯

開始時,你應該使用,如下面的截圖所示內置的排序功能對數據透視表。

enter image description here

選擇要排序的列:

enter image description here

這可能是有點問題的,因爲你的數據透視表不自動刷新數據的變化。如果您希望它實時更新,那麼您需要將「Worksheet_Change」事件處理程序添加到VBA代碼中。要做到這一點,按下Alt + F11調出VBA,幷包含源數據輸入下面的工作表:

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

這裏「PivotTable1」將變更爲等額返還您的數據透視表的名稱是。當您選擇透視表時,此名稱將顯示在功能區中。現在

enter image description here

,因爲你改變你的數據,該表將自動爲你去重新排序。

enter image description here

+0

謝謝你們!我剛剛更新了我的帖子,更詳細地解釋了我的問題。對不起,如果我忽略了答案中的某些內容。 – Hans