VBA Ostatni rząd - Jak znaleźć ostatnio używany wiersz w programie Excel za pomocą kodu VBA?

Spisie treści:

Anonim

Excel VBA Ostatni wiersz

Znalezienie ostatniego wiersza w kolumnie jest ważnym aspektem przy pisaniu makr i ich dynamice. Ponieważ nie wolimy aktualizować zakresów komórek co jakiś czas, gdy pracujemy z odwołaniami do komórek Excela. Jako programista / programista zawsze wolisz pisać kod dynamiczny, który można wykorzystać na dowolnych danych i spełnia twoje wymagania. Co więcej, zawsze byłoby świetnie, gdybyś miał ostatni znany wiersz swoich danych, abyś mógł dynamicznie zmieniać kod zgodnie z wymaganiami.

Wskażę tylko jeden przykład, który potwierdza znaczenie kodu dynamicznego.

Załóżmy, że mam dane podane poniżej z pracownikami i ich wynagrodzeniami.

I spójrz na kod podany poniżej:

Kod:

 Sub Przykład 1 () Zakres („D2”). Wartość = Arkusz funkcji Funkcja Sum (Zakres („B2: B11”)) Koniec Sub 

Tutaj kod drukuje sumę wynagrodzeń dla wszystkich pracowników (komórka B2: B11 ) w komórce D2 . Zobacz zdjęcie poniżej:

Co teraz, jeśli dodam kilka komórek do tych danych i ponownie uruchomię ten kod?

Logicznie rzecz biorąc, powyższy kod nie sumuje wszystkich 14 wierszy z kolumny B. Powodem tego jest zakres, który zaktualizowaliśmy w ramach funkcji arkusza roboczego (czyli B2: B11). Z tego powodu ważniejszy jest dla nas dynamiczny kod, który może wziąć pod uwagę ostatni wypełniony wiersz.

W tym artykule przedstawię kilka metod, które mogą być przydatne w znalezieniu ostatniego wiersza dla danego zestawu danych przy użyciu kodu VBA.

Jak znaleźć ostatnio używany wiersz w kolumnie za pomocą VBA?

Poniżej znajdują się różne przykłady z różnymi metodami znajdowania ostatnio używanego wiersza kolumny w programie Excel za pomocą kodu VBA.

Możesz pobrać ten szablon Excel VBA Last Row tutaj - szablon Excel VBA Last Row

Przykład # 1 - Korzystanie z metody Range.End ()

Cóż, ta metoda jest taka sama, jak użycie Ctrl + strzałka w dół w Excelu, aby przejść do ostatniego niepustego wiersza. W podobnych wierszach wykonaj poniższe kroki, aby utworzyć kod w VBA, aby dotrzeć do ostatniego niepustego wiersza kolumny w Excelu.

Krok 1: Zdefiniuj zmienną, która może przyjmować wartość dla ostatniego niepustego wiersza kolumny programu Excel.

Kod:

 Sub Przykład 2 () Dim Last_Row As Long End Sub 

Tutaj zmienna Last_Row jest zdefiniowana jako LONG, aby upewnić się, że może przyjąć dowolną liczbę argumentów.

Krok 2: Użyj zdefiniowanej zmiennej do przechowywania wartości ostatniego niepustego wiersza.

Kod:

 Sub Przykład2 () Dim Last_Row As Long Last_Row = End Sub 

Krok 3: Wpisz kod zaczynający się od CELLS (Rows.Count przed Last_Row = .

Kod:

 Sub Przykład 2 () Dim Last_Row As Long Last_Row = Komórki (Rows.Count End Sub 

Krok 4: Wspomnij o 1 po przecinku w wyżej wymienionym kodzie. Wartość numeryczna 1 jest synonimem pierwszej kolumny w arkuszu programu Excel.

Kod:

 Sub Przykład 2 () Dim Last_Row As Long Last_Row = Komórki (Rows.Count, 1) End Sub 

Ten kod pozwala VBA ustalić całkowitą liczbę (pustych + niepustych) wierszy obecnych w pierwszej kolumnie arkusza programu Excel. Oznacza to, że ten kod pozwala systemowi przejść do ostatniej komórki Excela.

Co teraz, jeśli jesteś w ostatniej komórce programu Excel i chcesz przejść do ostatniego niepustego wiersza? Użyjesz Ctrl + Strzałka w górę, prawda?

Tę samą logikę zastosujemy w następnym wierszu kodu.

Krok 5: Użyj kombinacji klawisza End i xlUp, aby przejść do ostatniego niepustego wiersza w programie Excel.

Kod:

 Sub Przykład 2 () Dim Last_Row As Long Last_Row = Komórki (Rows.Count, 1). End (xlUp) End Sub 

Spowoduje to przejście do ostatniego niepustego wiersza w programie Excel. Jednak chciałeś numer wiersza dla tego samego.

Krok 6: Użyj ROW, aby uzyskać numer ostatniego niepustego wiersza.

Kod:

 Sub Przykład2 () Dim Last_Row As Long Last_Row = Komórki (Rows.Count, 1). End (xlUp) .Row End Sub 

Krok 7: Pokaż wartość Last_Row, która zawiera ostatni niepusty numer wiersza za pomocą MsgBox.

Kod:

 Sub Przykład2 () Dim Last_Row As Long Last_Row = Komórki (Rows.Count, 1). End (xlUp) .Row MsgBox Last_Row End Sub 

Krok 8: Uruchom kod za pomocą przycisku Uruchom lub naciśnij F5 i zobacz wynik.

Wynik:

Krok 9: Teraz usuńmy jeden wiersz i zobaczmy, czy kod daje dokładny wynik, czy nie. Pomoże nam to sprawdzić dynamikę naszego kodu.

Przykład # 2 - Korzystanie z zakresu i komórek specjalnych

Możemy również użyć właściwości Range i SepcialCells VBA, aby uzyskać ostatni niepusty wiersz arkusza programu Excel.

Wykonaj poniższe kroki, aby uzyskać ostatni niepusty wiersz w programie Excel za pomocą kodu VBA:

Krok 1: Zdefiniuj zmienną ponownie jako Long.

Kod:

 Sub Przykład 3 () Dim Last_Row As Long End Sub 

Krok 2: Rozpocznij zapisywanie wartości do zmiennej Last_Row za pomocą operatora przypisania.

Kod:

 Sub Przykład 3 () Dim Last_Row As Long Last_Row = End Sub 

Krok 3: Rozpocznij wpisywanie zakresu („A: A”) .

Kod:

 Sub Przykład 3 () Dim Last_Row As Long Last_Row = Zakres („A: A”) End Sub 

Krok 4: Użyj funkcji SpecialCells, aby znaleźć ostatnią niepustą komórkę.

Kod:

 Sub Przykład 3 () Dim Last_Row As Long Last_Row = Zakres („A: A”). SpecialCells (xlCellTypeLastCell) End Sub 

Ta funkcja SpecialCells wybiera ostatnią komórkę z twojego programu Excel, gdy jest zapisywana w nawiasach ( xlCellTypeLastCell pozwala wybrać ostatnią niepustą komórkę z arkusza programu Excel).

Krok 5: Teraz użyj ROW, aby uzyskać ostatni wiersz z arkusza programu Excel.

Kod:

 Sub Przykład 3 () Dim Last_Row As Long Last_Row = Zakres („A: A”). SpecialCells (xlCellTypeLastCell) .Row End Sub 

Spowoduje to zwrócenie ostatniego niepustego wiersza z Twojego programu Excel.

Krok 6: Teraz przypisz tę wartość Last_Row do MsgBox, abyśmy mogli zobaczyć ostatni niepusty numer wiersza w oknie komunikatu.

Kod:

 Sub Przykład 3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub 

Krok 7: Uruchom kod, naciskając F5 lub przycisk Uruchom umieszczony w lewym górnym rogu.

Wynik:

Możesz zobaczyć, że ostatni niepusty numer komórki jest wyskakujący przez MsgBox w odniesieniu do kolumny A. Ponieważ wspominaliśmy o kolumnie A w funkcji Range podczas definiowania formuły zmiennej.

Krok 8: Jeśli usuniemy wiersz i możemy uruchomić tę formułę. Zobaczmy co się stanie.

Możesz zobaczyć, że system nadal podaje liczbę wierszy jako 14. Mimo że usunąłem wiersz, a faktyczna liczba wierszy wynosi 13, system nie przechwycił dokładnie liczby wierszy. Aby system przechwycił rzeczywistą liczbę wierszy, musisz zapisać arkusz i ponownie uruchomić kod.

Na tym zrzucie ekranu widać teraz rzeczywistą liczbę wierszy.

Przykład # 3 - Korzystanie z Range.Find ()

Wykonaj poniższe kroki, aby uzyskać ostatni niepusty wiersz w programie Excel za pomocą kodu VBA:

Krok 1: Zdefiniuj zmienną tak długo.

Kod:

 Sub Przykład 4 () Dim Last_Row As Long End Sub 

Krok 2: Teraz użyj następującego kodu, aby zobaczyć ostatni niepusty wiersz.

Kod:

 Sub Przykład4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row End Sub 

Tutaj funkcja ZNAJDŹ szuka pierwszej niepustej komórki. Gwiazdka (*) jest operatorem wieloznacznym, który pomaga znaleźć to samo.

Zaczynając od komórki A1, system wraca do ostatniej komórki z arkusza i szuka w kierunku do tyłu (xlPoprzedni). Porusza się od prawej do lewej (xlByRows) i zapętla się w tym samym arkuszu przez wszystkie wiersze podobnych linii, aż znajdzie niepusty wiersz (patrz .ROW na końcu kodu).

Krok 3: Użyj MsgBox do zapisania wartości ostatniego niepustego wiersza i zobacz go jako wyskakujące okienko.

Kod:

 Sub Przykład4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row MsgBox Last_Row End Sub Sub 

Krok 4: Uruchom kod i zobacz wynik jako wyskakujące okienko zawierające ostatni niepusty numer wiersza.

Wynik:

Rzeczy do zapamiętania

  • Koniec (przykład 1) może być wykorzystany do znalezienia pierwszej pustej komórki / wiersza lub ostatniej niepustej komórki / wiersza w danej kolumnie przy użyciu kodu VBA.
  • Koniec działa przez większość czasu w jednej kolumnie. Jeśli masz dane w zakresach, trudno byłoby określić, której kolumny należy użyć, aby znaleźć ostatni niepusty wiersz.
  • Znajdź (Przykład 3) działa na całym zakresie od punktu początkowego i wyszukuje ostatnią niepustą komórkę / wiersz w danej kolumnie za pomocą kodu VBA. Można go również użyć do znalezienia ostatniej niepustej kolumny.

Polecane artykuły

To jest przewodnik po VBA Last Row. Tutaj omawiamy, jak znaleźć ostatnio używany wiersz w danej kolumnie, wraz z praktycznymi przykładami i szablonem programu Excel do pobrania. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Jak korzystać z kolumny VBA Insert?
  2. Jak wybrać wiersze i kolumny Excela?
  3. Przegląd komórek VBA Range
  4. Jak dodać komórki w programie Excel?