如何一次性對數字列的數量進行排序

如何一次性對數字列的數量進行排序

輸入輸出

我有 350 列。以下是所有資料的子集。

Excel 電子表格中的範例資料分為年份和月份的行並按地區列。

我使用“從小到大排序”工具。它僅給出一列的結果。如果沒有,則可以對第一列進行排序,其他列將根據第一列進行變更。但我想分別對所有列 AZ 進行排序。

我想按地區對數據進行排序。

答案1

1.選擇要排序的列。然後點擊“從小到大排序”。

資料 > 排序與篩選 > 從最小到最大排序

2.選擇“繼續目前選擇”。

繼續當前選擇

您可以看到,僅對一列進行了排序。
僅對一列進行排序

對其餘 349 列重複此操作:)


為了一次完成這一切:

  1. 開啟要排序的工作表。

  2. Alt使用+開啟 VBA 編輯器F11

  3. 插入 > 模組

  4. 貼上此代碼:

子 sort_columns_separately_AZ()
  調暗 rngStart As 範圍
  調暗 rngHeaders 作為範圍
  調暗範圍
  設定 rngStart = ActiveSheet.Range("A2")
  設定 rngHeaders = ActiveSheet.Range(rngStart, rngStart.End(xlToRight))

  對於 rngHeaders 中的每個 c
    ActiveSheet.Sort.SortFields.Clear
    ActiveSheet.Sort.SortFields.Add Key:=c, _
      SortOn:=xlSortOnValues,順序:=xlAscending,DataOption:=xlSortNormal
    使用 ActiveSheet.Sort
      .SetRange ActiveSheet.Range(c, c.End(xlDown))
      . header = xl是
      .MatchCase = False
      .方向 = xlTopToBottom
      .SortMethod = xlPinYin
    結束於
  下一個
結束子
  1. 在程式碼中,更改ActiveSheet.Range("A2")資料表開始的儲存格位址,例如ActiveSheet.Range("B5")
  2. F5

結果:
排序前和排序後

注意:如果資料中有任何空白儲存格,則需要調整此程式碼才能在具有空白儲存格的資料列上正常運作。

相關內容