.png)
Ich habe Blatt 1, in das ich neue Daten in ein Arbeitsblatt eingebe, und in mein Referenzblatt ziehe ich dieselben Werte aus Blatt 1, damit ich sie nach der Eingabezeit sortieren kann. Mein Ziel ist es, auf Blatt 1 eine Anzeige zu haben, die die letzten 10 in Blatt 1 eingegebenen Elemente zeigt. Ich habe die folgende Formel verwendet, um mein Referenzblatt nach Datum zu sortieren, aber da ich eine Formel verwende, um die Werte einzufügen, wird sie nicht ausgelöst. Ist es möglich, dies mit einem neuen Makro zu kombinieren, sodass ich Daten an einer Stelle eingeben und sie an einer anderen Stelle sortieren lassen kann?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim A As Range
Dim AB As Range
Set A = Range("A:A")
Set AB = Range("A:B")
If Intersect(Target, A) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1) = Now
AB.Sort Key1:=Range("B1"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Application.EnableEvents = True
End Sub
Antwort1
Es klingt, als ob Ihr Problem darin besteht, dass Ihr Makrocode bei der Änderung in einem Blatt nicht ausgelöst wird, da sich das Blatt nur aufgrund einer Formelreferenz ändert. Wenn dies der Fall ist, können Sie den Code (oder einen Aufruf der von Ihnen benötigten Subs) nicht aus demWorkbook_SheetChange()Sub stattdessen? (das 'Arbeitsbuch'SheetChange()Ereignis wird ausgelöst, wenn Sie ändernbeliebigSie können das geänderte Blatt einsehen mitSh.Nameaus diesem Sub. Und holen Sie sich die Zelladresse der Änderung mitZieladresse.