Wybierz całą kolumnę minus wiersz nagłówka w makrze Excela

8

Jak uzyskać dostęp do zakresu, który odpowiada całej kolumnie, zaczynając od wiersza 2 (istnieje wiersz nagłówka)?

Koniec zaznaczenia powinien być ostatnią niepustą komórką w kolumnie.

Dave
źródło

Odpowiedzi:

5

Zobacz artykuł pomocy technicznej Microsoft Jak wybierać komórki / zakresy za pomocą procedur Visual Basic w Excelu , nr 19 ( Jak wybrać cały zakres ciągłych komórek w kolumnie ).

Peter Mortensen
źródło
To wybiera ponad milion wierszy w skoroszycie, którego używam, mimo że wszystko ponad 300 jest puste.
Dave
co powiesz na: Sub LastCellBeforeBlankInColumn () / Range ("A1"). End (xldown) .Wybierz / End Sub
2

Spróbuj tego:

Range(Range("A2"),Range("A2").End(xldown)).Select

albo to:

Range(Range(Cells(2, 1), Cells(2, 1)), Range(Cells(65535, 1), Cells(65535, 1)).End(xlUp)).Select
Michael Galos
źródło
2

Odnosząc się do tej odpowiedzi SO , jedyną bezpieczną metodą jest .find()metoda.
Wszystkie inne metody mogą dawać nieprawidłowe wyniki, jeśli wcześniej usunięto niektóre komórki.

Przykład, aby uzyskać ostatnie komórki

Lastrow =  Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
Lastcol =  Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column

I konkretna odpowiedź na twoje pytanie (zakładając, że Twoje dane znajdują się w kolumnie 2, zaczynając od wiersza 2)

Range([B2], [B:B].Find("*", [B1], , , xlByRows, xlPrevious)).select

wprowadź opis zdjęcia tutaj

nixda
źródło
1

Możesz użyć skrótów klawiaturowych Excel. Spróbuj Ctrl+ Home.

Spowoduje to przejście do komórki A1 (jeśli nie korzystałeś z panelu zamrażania). Zejdź o jedną komórkę w dół, a następnie za pomocą przycisków Ctrl+ Shift+ Down arrowwybierz, aż do ostatniego wprowadzonego wiersza.

Jeśli musisz wybrać wartość kolumny, użyj right arrowprzycisku zamiast down arrowprzycisku.

Peter Mortensen
źródło
0

Ten fragment kodu uśrednia wszystko oprócz nagłówka z nagłówkiem w komórce „B1”

Dim GG as Long
GG = Application.WorksheetFunction.Average(ActiveSheet.Range("B2", Range("B2").End(xlDown)))
RWB
źródło