VBA Last Row

W VBA, gdy musimy znaleźć ostatni wiersz, istnieje wiele różnych metod, a najczęściej używaną metodą jest metoda End (XLDown) i są inne metody, takie jak znalezienie ostatniej wartości za pomocą funkcji find w VBA, End (XLDown ). Najłatwiej dostać się do ostatniego rzędu za pomocą wiersza.

Excel VBA Ostatni wiersz

Jeśli pisanie kodu jest pierwszym postępem w VBA, następnym krokiem jest uczynienie kodu dynamicznym. Excel jest pełen odwołań do komórek, w momencie gdy odwołujemy się do komórki, zostaje ona naprawiona. Jeśli nasze dane wzrosną, musimy wrócić do odwołania do komórki i zmienić odniesienia, aby wynik był aktualny.

Na przykład spójrz na poniższy kod.

Kod:

 Sub Last_Row_Example1 () Range ("D2"). Value = WorksheetFunction.Sum (Range ("B2: B7")) End Sub 

Powyższy kod mówi, że wartość komórki D2 powinna być sumą Zakresu („B2: B7”).

Teraz dodam więcej wartości do listy.

Teraz, jeśli uruchomię kod, nie da mi wyniku aktualizacji, a raczej nadal trzyma się starego zakresu, tj. Range („B2: B7”).

W tym miejscu bardzo ważny jest kod dynamiczny.

W procesie tworzenia dynamicznego kodu bardzo ważne jest znalezienie ostatnio używanego wiersza w kolumnie. W tym artykule omówimy sposoby znajdowania ostatniego wiersza w Excel VBA.

Jak znaleźć ostatnio używany wiersz w kolumnie?

Poniżej znajdują się przykłady, aby znaleźć ostatnio używany wiersz w Excel VBA.

Możesz pobrać ten szablon ostatniego wiersza VBA tutaj - szablon ostatniego wiersza VBA

Metoda nr 1

Zanim wyjaśnię kod, chcę, abyś zapamiętał, jak przechodzisz do ostatniego wiersza w normalnym arkuszu.

Użyjemy klawisza skrótu Ctrl + strzałka w dół.

Zabierze nas do ostatniego używanego wiersza przed pustą komórką. Użyjemy tej samej metody w VBA, aby znaleźć ostatni wiersz.

Krok 1: Zdefiniuj zmienną jako LONG.

Kod:

 Sub Last_Row_Example2 () Dim LR As Long 'Dla zrozumienia LR = Last Row End Sub 

Krok 2: W przypadku tej zmiennej przypiszemy numer ostatnio używanego wiersza.

Kod:

 Sub Last_Row_Example2 () Dim LR As Long 'Dla zrozumienia LR = Last Row LR = End Sub 

Krok 3: Napisz kod jako CELLS (Rows.Count,

Kod:

 Sub Last_Row_Example2 () Dim LR As Long 'Dla zrozumienia LR = Last Row LR = Cells (Rows.Count, End Sub 

Krok 4: Teraz podaj numer kolumny jako 1.

Kod:

 Sub Last_Row_Example2 () Dim LR As Long 'Dla zrozumienia LR = Last Row LR = Cells (Rows.Count, 1) End Sub 

CELLS (Rows.Count, 1) oznacza zliczanie, ile wierszy znajduje się w pierwszej kolumnie.

Tak więc powyższy kod VBA przeniesie nas do ostatniego wiersza arkusza Excela.

Krok 5: Jeśli jesteśmy w ostatniej komórce arkusza, aby przejść do ostatnio używanego wiersza, naciśniemy klawisz skrótu jako Ctrl + Strzałka w górę .

W VBA musimy użyć klawisza końcowego i wyżej, czyli End VBA xlUp

Kod:

 Sub Last_Row_Example2 () Dim LR As Long 'Dla zrozumienia LR = Last Row LR = Cells (Rows.Count, 1). End (xlUp) End Sub 

Krok 6: Teraz przeniesie nas do ostatniego używanego rzędu od dołu. Teraz potrzebujemy numeru wiersza tego. Więc użyj właściwości WIERSZ, aby uzyskać numer wiersza.

Kod:

 Sub Last_Row_Example2 () Dim LR As Long 'Dla zrozumienia LR = Last Row LR = Cells (Rows.Count, 1) .End (xlUp) .Row End Sub 

Krok 7: Teraz zmienna przechowuje ostatnio używany numer wiersza. Pokaż wartość tej zmiennej w oknie komunikatu w kodzie VBA.

Kod:

 Sub Last_Row_Example2 () Dim LR As Long 'Dla zrozumienia LR = Last Row LR = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox LR End Sub 

Uruchom ten kod za pomocą klawisza F5 lub ręcznie, wyświetli on ostatnio używany wiersz.

Wynik:

Ostatni używany wiersz w tym arkuszu to 13.

Teraz usunę jeszcze jedną linię i uruchomię kod i zobaczę dynamikę kodu.

Ok, teraz wynik automatycznie zajmuje ostatni wiersz.

Taki jest dynamiczny kod ostatniego wiersza VBA.

Jak pokazałem we wcześniejszym przykładzie, zmień numer wiersza z wartości liczbowej na LR.

Kod:

 Sub Last_Row_Example2 () Dim LR As Long 'Dla zrozumienia LR = Last Row LR = Cells (Rows.Count, 1) .End (xlUp) .Row Range ("D2"). Value = WorksheetFunction.Sum (Range ("B2: B "i LR)) End Sub 

Usunąłem B13 i dodałem nazwę zmiennej LR.

Teraz nie ma znaczenia, ile wierszy dodasz, automatycznie przyjmie zaktualizowane odniesienie.

Metoda nr 2

Możemy również znaleźć ostatni wiersz w VBA, używając obiektu Range i specjalnej właściwości komórek VBA.

Kod:

 Sub Last_Row_Example3 () Dim LR As Long LR = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox LR End Sub 

Kod podaje również ostatnio używany wiersz. Na przykład spójrz na poniższy obraz arkusza.

Jeśli uruchomię kod ręcznie lub za pomocą klawisza F5, wynikiem będzie 12, ponieważ 12 jest ostatnim używanym wierszem.

Wynik:

Teraz usunę 12. wiersz i zobaczę wynik.

Even though I have deleted one row it is still showing the result as 12.

In order to make this code work we need to hit the save button after every action, then this code will return accurate results.

I have saved the workbook and now see the result.

Method #3

We can find the VBA last row in the used range. Below code also returns the last used row.

Code:

 Sub Last_Row_Example4() Dim LR As Long LR = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row MsgBox LR End Sub 

This will also return the last used row.

Output: