Vba: jak znaleźć ostatnio używaną kolumnę
Aby znaleźć ostatnio używaną kolumnę w arkuszu Excel, możesz użyć następującej podstawowej składni w VBA:
Sub FindLastColumn()
Range(" A14 ") = Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
End Sub
Ten konkretny przykład wyszukuje ostatnio używaną kolumnę w bieżącym arkuszu i zwraca wynik w komórce A14 .
Jeśli zamiast tego chcesz wyświetlić ostatnią kolumnę okna komunikatu, możesz użyć następującej składni:
Sub FindLastColumn()
Dim LastCol As Long
LastCol=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
MsgBox " Last Column: " & LastCol
End Sub
Poniższe przykłady pokazują, jak zastosować każdą z tych metod w praktyce.
Powiązane: VBA: Jak znaleźć ostatnio używaną linię
Przykład 1: Znajdź ostatnią kolumnę 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ą kolumnę używaną w tym arkuszu Excela i wyświetlić wynik w komórce A14 :
Sub FindLastColumn()
Range(" A14 ") = Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Zauważ, że komórka A14 zawiera wartość 2 .
To mówi nam, że ostatnią kolumną użytą w tym konkretnym arkuszu jest kolumna 2.
Warto również zauważyć, że jeśli masz puste kolumny przed używaną kolumną, to makro zawsze znajdzie ostatnio używaną kolumnę.
Załóżmy na przykład, że uruchamiamy makro na następującym zbiorze danych:
Komórka A14 zawiera wartość 5 , ponieważ jest to ostatnia kolumna zawierająca wartości.
Przykład 2: Znajdź ostatnią kolumnę za pomocą VBA i wyświetl wyniki w oknie komunikatu
Załóżmy zamiast tego, że chcemy znaleźć ostatnio używaną kolumnę w arkuszu i wyświetlić numer kolumny w oknie komunikatu.
W tym celu możemy utworzyć następujące makro:
Sub FindLastColumn()
Dim LastCol As Long
LastCol=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByColumns,xlPrevious,False).Column
MsgBox " Last Column: " & LastCol
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Okno komunikatu informuje nas, że ostatnią kolumną używaną w arkuszu jest kolumna 2 .
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