簡體   English   中英

使用VBA進行排序操作?

[英]Sorting operation using VBA?

如何使用VBA代碼執行排序操作? 有定義的宏可以執行該操作嗎?

我必須按升序對B列進行排序,其中具有值。 和C列,其中以最早和最新的方式顯示日期。

我強烈建議您使用宏錄制器。 如果您在Excel中看不到“開發人員”選項卡,請轉到excel選項,它應位於“流行”選項卡中。 單擊以將其打開。

按“記錄宏”,然后做您想做的事情(例如突出顯示一列,然后按功能區上的“排序”並按升序排序),然后“停止記錄”。 進入VBA(Alt + F11)並查看生成的代碼,以學習有關如何編寫相同函數的語法。

例如,排序日期將導致如下所示:

Sub Macro1()
    Columns("F:F").Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("F1:F5"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("F1:F5")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

由於您已經在運行宏時選擇了要排序的列,因此可以將代碼清理為如下所示:

Sub SortAscending()
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

由於排序日期是升序,因此可以使用相同的代碼進行排序:

訣竅是要記住,您不必在已經選擇的代碼中選擇范圍。 祝您好運,並喜歡錄音機,它在這種情況下確實有幫助。

另外,在Excel VBA上有很多書籍,我建議您在書店或以數字方式購書。 那里的大多數書籍都會帶您逐步了解VBA基礎知識,主要關鍵字,使用記錄器,然后逐步學習,以便您可以編寫自己的代碼(記錄器代碼幾乎沒有優化或完善,但是對於學習措辭非常有用(語法)以執行某些工作表功能)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM