Note: The other languages of the website are Google-translated. Back to English

如何一次對多個工作表上的數據進行排序?

在Excel中,我們可以根據特定列快速輕鬆地對工作表中的數據進行排序,但是,您是否曾經嘗試過對多個工作表中的數據進行排序? 要對它們進行逐一排序將非常耗時,本文將介紹一種簡單的解決方法。

使用VBA代碼一次對多個工作表上的數據進行排序


箭頭藍色右氣泡 使用VBA代碼一次對多個工作表上的數據進行排序

要基於工作簿所有工作表中的一列對數據進行排序,以下VBA代碼可以為您提供幫助。

1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊 窗口。

VBA代碼:一次對多個工作表上的數據進行排序:

Sub SortAllSheets()
   'Updateby Extendoffice
   Dim WS      As Worksheet
   ActiveSheet.Range("a1:f1").Select
   Selection.Copy
   On Error Resume Next
   Application.ScreenUpdating = False
   For Each WS In Worksheets
      WS.Columns("A:F").Sort Key1:=WS.Columns("E"), Order1:=xlDescending
   Next WS
   ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteAll
   Application.ScreenUpdating = True
End Sub

3。 然後按 F5 要運行此代碼,請按照每張工作表的E列一次按降序對所有具有相同格式的工作表進行排序。

備註:在上面的代碼中, 一:F 是您要排序的數據范圍, E 是要基於其進行排序的列字母。


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (11)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
不起作用...
網站主持人對此評論進行了最小化
我怎樣才能使它適用於多個列。 我正在嘗試按 K 列和 M 列對一些進行排序,並且我知道確切的工作表編號。 我的 M 列(當我使用上面的代碼時)僅按 K 排序,而不是按 M,因此它不起作用。 
網站主持人對此評論進行了最小化
對我來說就像一個魅力......謝謝!
網站主持人對此評論進行了最小化
效果很好,但我怎樣才能避免包括標題(即第 1 行?)
網站主持人對此評論進行了最小化
你好,露西,
要對不包括標題行的所有工作表進行排序,請應用以下 vba 代碼:(注意:請根據需要更改單元格引用)

子排序所有表()
'更新通過 Extendoffice
Dim WS 作為工作表
將 xIntR 調暗為整數
ActiveSheet.Range("A1:F1").Select
在錯誤恢復下一頁
Application.ScreenUpdating = False
對於工作表中的每個 WS
xIntR = 相交(WS.UsedRange, WS.Range("A:F")).Rows.Count
WS.Range("A2:F" & xIntR).Sort Key1:=WS.Range("A2:A" & xIntR), Order1:=xlDescending
下一個 WS
Application.ScreenUpdating = True
END SUB

請嘗試,希望對您有所幫助!
網站主持人對此評論進行了最小化
希望你能看到這個......! 這非常有效 - 但它包含具有公式但沒有數據的單元格,從而在選項卡中創建間隙並弄亂行上的數據。 我需要將這些單元格保留在我的選項卡中,因為它們查找添加到“主選項卡”的名稱我希望它只對具有實際名稱的單元格進行排序 - 快速修復???
網站主持人對此評論進行了最小化
非常有用的代碼謝謝
網站主持人對此評論進行了最小化
嘿,這太好了,非常感謝你! 我對這段代碼的唯一問題是它沒有在我的第一張紙上執行。 它確實在我剩下的工作表上執行。 我如何才能在所有工作表上執行此操作? 就好像代碼跳過了第一張紙一樣。 任何幫助將非常感激 :)
網站主持人對此評論進行了最小化
我想在多個工作簿中拆分數據,然後在其中一列中添加值..

我已經準備了代碼來拆分工作簿中的數據..但需要幫助才能在其中一列中添加總數
網站主持人對此評論進行了最小化
你可以在不包括所有工作表的情況下運行它嗎? 即在宏中留下一些表格?
網站主持人對此評論進行了最小化
這似乎對我不起作用。 我有一個工作簿,其中有 12 張按一年中的月份排序的工作表,每張工作表都包含有關公司產品等的相應數據。我的目標是對工作簿中的所有工作表進行排序和過濾。 我想要一張作為父工作表的工作表(例如一年中的第一個月),我將對其執行過濾或排序功能(例如 A -> Z 排序)並自動讓其他工作表遵循相同排序或過濾。 例如,當使用標有“一月”的工作表時,如果我選擇“D”列,其中包括我想要以“升序”順序排列的月份中的天數 - 在“一月”工作表上實現 A -> Z 排序時,我希望這會影響序列中的其餘所有工作表(XNUMX 月至 XNUMX 月),月份中的所有日期都按 A -> Z 排序。在“一月”工作表上所做的與排序和過濾有關的任何更改,應該影響工作簿中工作表的平衡。
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護