如何使用巨集來作為在 Excel 中的一個資料行排序多個資料行的資料

文章翻譯 文章翻譯
文章編號: 247311 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

Microsoft Excel 並沒有內建的方法,以排序報紙 (拖曳) 資料行的資料。本文包含範例巨集來排序報紙分欄格式中的資料。

其他相關資訊

Microsoft 僅,為了說明提供程式設計範例,不提供任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已熟悉使用我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序的功能,但它們不會修改這些範例以提供附加功能或建構程序,以符合您特定需求。

內建排序

在 Microsoft Excel 您通常使用排序功能來排序清單。Excel 中的清單是一系列的工作表包含一個發票的資料庫或一組的用戶端名稱和電話號碼等的相關的資料的列。您可以使用清單,其中每個資料列是一筆記錄是資料庫和資料行是欄位。第一列的清單通常會有欄的標籤,例如:
   A1: Q1   B1: Q2   C1: Q3
   A2: 10   B2: 2    C2: 4
   A3: 14   B3: 18   C3: 9
   A4: 7    B4: 17   C4: 12
   A5: 1    B5: 13   C5: 5
   A6: 11   B6: 8    C6: 16
   A7: 3    B7: 6    C7: 15
				
如果您對進行排序此清單以遞增順序由 [Q1 欄位 (欄),結果就是,如下所示:
   A1: Q1   B1: Q2   C1: Q3
   A2: 1    B2: 13   C2: 5
   A3: 3    B3: 6    C3: 15
   A4: 7    B4: 17   C4: 12
   A5: 10   B5: 2    C5: 4
   A6: 11   B6: 8    C6: 16
   A7: 14   B7: 18   C7: 9
				

排序報紙式分欄

報紙分欄和拖曳資料行都是相同類型的資料格式的不同條款。報紙資料行中資料填滿一欄,並會繼續在下一欄的頂端。在這種情況下您的資料可能並沒有針對每個資料行的標籤,例如:
   A1: 10   B1: 2    C1: 4
   A2: 14   B2: 18   C2: 9
   A3: 7    B3: 17   C3: 12
   A4: 1    B4: 13   C4: 5
   A5: 11   B5: 8    C5: 16
   A6: 3    B6: 6    C6: 15
				
您可以使用本文中要排序以遞增順序的報紙分欄範例巨集。如果您在上述的資料上使用範例巨集會,結果如下:
   A1: 1    B1: 7    C1: 13
   A2: 2    B2: 8    C2: 14
   A3: 3    B3: 9    C3: 15
   A4: 4    B4: 10   C4: 16
   A5: 5    B5: 11   C5: 17
   A6: 6    B6: 12   C6: 18
				
至排序運作所述的巨集,請參閱,請依照下列步驟執行:
  1. 開啟新的活頁簿。
  2. 在表中鍵入下列的範例資料:
       A1: 10   B1: 2    C1: 4
       A2: 14   B2: 18   C2: 9
       A3: 7    B3: 17   C3: 12
       A4: 1    B4: 13   C4: 5
       A5: 11   B5: 8    C5: 16
       A6: 3    B6: 6    C6: 15
    					
  3. 在 [工具] 功能表上指向 [巨集,然後按一下 [Visual Basic 編輯器]。
  4. 插入] 功能表上按一下 [模組]。
  5. 在模組中輸入下列程式碼:

    附註下列範例示範如何以遞增順序排序。您可以藉由修改的值變更此"Order1: ="xlDescending 的引數
       Sub SortAllRangeData()
       ' Place column header for temporary sort area.
       Range("IV1").Value = "Numbers"
       
       ' Move numbers to temporary sort location.
       For Each cell In Selection
          Range("iv65536").End(xlUp).Offset(1, 0) = cell.Value
       Next cell
       
       ' Sort numbers in ascending order.
       Range("IV1", Range("IV1").End(xlDown)).Sort Key1:=Range("IV2"),  _
       Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
            
       ' Move sorted data back to original sheet location.
    
       Selection(1, 1).Activate ' Make sure the ActiveCell is the
                                ' top left of Selection first.
       CCnt = Selection.Columns.Count
       RCnt = Selection.Rows.Count
       CellCnt = Selection.Cells.Count
       Tcell = 2
       For c = 1 To CCnt
         For r = 1 To RCnt
            Range(ActiveCell.Address).Offset(r - 1, c - 1).Value =  _
            Range("iv" & Tcell).Value
            Tcell = Tcell + 1
         Next r
       Next c
       
       ' Clean up temporary sort location.
       Range("IV1", Range("IV1").End(xlDown)).Clear
    End Sub
    					
  6. 在 Mac 的 Microsoft Excel X 和更新版本 Mac 的 Excel 中 [Excel] 功能表或在所有其他版本的 Excel 中的 [檔案] 功能表上,按一下 [關閉並返回 [Microsoft Excel
  7. 選取 A1:C6。
  8. 在 [工具] 功能表上指向 [巨集,然後按一下 [巨集]。選取 SortAllRangeData] 巨集,然後按一下 [執行]。
所有選取範圍內資料現在排序,並會出現,如下所示:
   A1: 1    B1: 7    C1: 13
   A2: 2    B2: 8    C2: 14
   A3: 3    B3: 9    C3: 15
   A4: 4    B4: 10   C4: 16
   A5: 5    B5: 11   C5: 17
   A6: 6    B6: 12   C6: 18
				

?考

Mac 和更新版本的 Excel X

如需有關如何排序,請按一下 [說明] 功能表上的 [Excel 說明 的詳細資訊,鍵入 排序],按一下 [搜尋],然後再按一下 [主題來檢視它。

如需有關如何使用 Sort 方法從 Visual Basic 編輯器、 按一下 [說明] 功能表上的 [Visual Basic 說明,請鍵入 排序方法 的詳細資訊,按一下 [搜尋],] 然後按一下以檢視 排序方法]。

Mac 的 Excel 2001 年

如需有關如何排序的詳細資訊,請按一下 Office 小幫手],鍵入 排序清單]、 按一下 [搜尋],然後再按一下主題,以檢視它]。

附註如果隱藏的 [小幫手] 按一下 [一般] 工具列上的 [Office 小幫手] 按鈕。

如需有關如何使用 Sort 方法從 Visual Basic 編輯器、 按一下 Office 小幫手,請鍵入 排序方法 的詳細資訊,按一下 [搜尋],] 然後按一下以檢視 排序方法]。

屬性

文章編號: 247311 - 上次校閱: 2007年1月25日 - 版次: 6.3
這篇文章中的資訊適用於:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 2004 for Mac
  • Microsoft Excel X for Mac
  • Microsoft Excel 2001 for Macintosh
  • Microsoft Excel 98 for Macintosh
關鍵字:?
kbmt kbautomation kbprogramming kbhowto KB247311 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:247311
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com