Vba: jak znaleźć ostatnio używaną linię
Aby znaleźć ostatnio używany wiersz w arkuszu Excel, możesz użyć następującej podstawowej składni w VBA:
Sub FindLastRow()
Range(" D2 ")=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
End Sub
Ten konkretny przykład wyszukuje ostatni wiersz użyty w bieżącym arkuszu i zwraca wynik w komórce D2 .
Jeśli zamiast tego chcesz wyświetlić ostatnią linię okna komunikatu, możesz użyć następującej składni:
Sub FindLastRow()
Dim LastRow As Long
LastRow=Cells.Find("*", Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
MsgBox " Last Row: " & LastRow
End Sub
Poniższe przykłady pokazują, jak zastosować każdą z tych metod w praktyce.
Przykład 1: Znajdź ostatni wiersz za pomocą VBA i wyświetl wyniki w komórce
Załóżmy, że mamy w programie Excel następujący zbiór danych zawierający informacje o różnych koszykarzach:
Możemy utworzyć następujące makro, aby znaleźć ostatnią linię używaną w tym arkuszu Excela i wyświetlić wynik w komórce D2 :
Sub FindLastRow()
Range(" D2 ")=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Zauważ, że komórka D2 zawiera wartość 11 .
To mówi nam, że ostatnim wierszem użytym w tym konkretnym arkuszu jest wiersz 11.
Warto również zauważyć, że jeśli masz puste komórki przed używaną komórką, to makro zawsze znajdzie ostatnio używany wiersz.
Załóżmy na przykład, że uruchamiamy makro na następującym zbiorze danych:
Komórka D2 zawiera wartość 16 , ponieważ jest to ostatni wiersz zawierający wartość.
Przykład 2: Znajdź ostatni wiersz za pomocą VBA i wyświetl wyniki w oknie komunikatu
Załóżmy zamiast tego, że chcemy znaleźć ostatnio używany wiersz w arkuszu i wyświetlić numer wiersza w oknie komunikatu.
W tym celu możemy utworzyć następujące makro:
Sub FindLastRow()
Dim LastRow As Long
LastRow=Cells.Find("*", Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
MsgBox " Last Row: " & LastRow
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Okno komunikatu informuje nas, że ostatnim wierszem użytym w arkuszu jest wiersz 11 .
Uwaga : Pełną dokumentację metody VBA Find znajdziesz tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
VBA: Jak obliczyć średnią wartość zakresu
VBA: Jak policzyć liczbę wierszy w zakresie
VBA: Jak usunąć zduplikowane wartości w zakresie