VBA — jak znaleźć ostatnią kolumnę w Excelu?

Jak w VBA znaleźć ostatnią używaną kolumnę w wybranym wierszu. Gotowy kod z End(xlToLeft) i praktyczne wskazówki.

Najkrócej:

Najprostszy i szybki sposób to rozpocząć od ostatniej kolumny arkusza i przesunąć się w lewo.

Gotowy kod

Skopiuj makro

VBA
Sub OstatniaKolumna()
    Dim ws As Worksheet
    Dim lastCol As Long

    Set ws = ThisWorkbook.Worksheets("Dane")

    lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column

    MsgBox "Ostatnia kolumna: " & lastCol
End Sub
Dostosowanie

Co zmienić w kodzie?

01

Zmień "Dane" na właściwy arkusz.

02

Liczba 1 w Cells(1, ...) oznacza wiersz, w którym szukasz ostatniej kolumny.

03

Jeśli nagłówki znajdują się w innym wierszu, np. 3, użyj Cells(3, ...).

Wyjaśnienie

Jak działa ten kod?

ws.Columns.Count wskazuje ostatnią możliwą kolumnę arkusza.

End(xlToLeft) przesuwa się w lewo do pierwszej niepustej komórki.

.Column zwraca numer kolumny, np. A = 1, AB = 28.

Uważaj na

Najczęstsze błędy

Wiersz używany do wyszukiwania powinien zawierać dane we wszystkich istotnych kolumnach.

Nie używaj ActiveSheet, jeśli makro ma działać niezależnie od aktualnie klikniętego arkusza.

Jeżeli cały analizowany wiersz jest pusty, wynik może być mylący.