Tworzenie makra do sortowania elementów według wprowadzonej daty (wyniki wywołane z formuły)


0

Mam Arkusz 1, w którym wprowadzam nowe dane w arkuszu roboczym, a na moim arkuszu odniesienia ciągnę te same wartości z arkusza 1, aby móc je sortować według wprowadzonego czasu. Moim celem jest wyświetlenie w Arkuszu 1, który pokazuje 10 ostatnich pozycji wprowadzonych w Arkuszu 1. Użyłem poniższej formuły, aby posortować mój arkusz odniesienia według daty, ale ponieważ używam formuły do ​​ciągnięcia wartości, nie wyzwala . Czy można połączyć to z nowym makro, aby móc wprowadzać dane w jednym miejscu i sortować je w innym miejscu?

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

Odpowiedzi:


0

Wygląda na to, że problem polega na tym, że kod makra nie jest wyzwalany w przypadku zmiany jednego arkusza, ponieważ arkusz zmienia się tylko na podstawie odwołania do formuły. Jeśli tak jest, czy nie możesz umieścić kodu (lub połączenia bez względu na to, czego potrzebujesz) z Workbook_SheetChange () Zamiast tego? („Skoroszyt” SheetChange () zdarzenie zostanie uruchomione po zmianie każdy arkusz). Możesz sprawdzić arkusz, który został zmieniony za pomocą Sh.Name z poziomu tego Sub. I uzyskaj adres komórki zmiany za pomocą Adres docelowy .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.