Wie verwandle ich ein aufgezeichnetes Makro in VBA in ein automatisiertes Makro?

Wie verwandle ich ein aufgezeichnetes Makro in VBA in ein automatisiertes Makro?

Ich habe das folgende Makro aufgezeichnet, um Daten im Bereich „B3:U47“ basierend auf den Werten der Spalte „C3:C47“ zu sortieren.

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

Jedes Mal, wenn ich die Daten sortieren möchte, drücke ich Strg+n. Gibt es eine Möglichkeit, dies automatisch zu tun, wenn ich einen neuen Wert in Spalte C eingebe? Ich versuche, es über VBA zu ändern, aber bisher ohne Erfolg.

Antwort1

Muster:

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

Und vergessen Sie nicht, Range("B3:U47").Selectdie Zeile zu entfernen/kommentieren.

verwandte Informationen