如何在VBA中將錄製的巨集轉換為自動巨集?

如何在VBA中將錄製的巨集轉換為自動巨集?

我記錄了以下宏,以根據「C3:C47」列的值對「B3:U47」範圍內的資料進行排序。

Sub Sorting_Finance()
    Range("B3:U47").Select
    ActiveWorkbook.Worksheets("Finance").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Finance").Sort.SortFields.Add2 Key:= _
        Range("C3:C47"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("Finance").Sort
        .SetRange Range("B3:U47")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

每次我想對資料進行排序時,我都會按 Control+n。當我在 C 列中輸入新值時,有沒有辦法自動執行此操作?我正在嘗試透過VBA更改它,但到目前為止還沒有成功。

答案1

圖案:

Private Sub Worksheet_Change(ByVal Target As Range)
if not (intersect(target, Range("C3:C47")) is nothing) then 
    call Sorting_Finance
end if
end sub

並且不要忘記刪除/註解Range("B3:U47").Select行。

相關內容