[英]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.