Wählen Sie in einem Excel-Makro eine ganze Spalte minus Kopfzeile aus

8

Wie würde ich auf einen Bereich zugreifen, der einer gesamten Spalte ab Zeile 2 entspricht (es gibt eine Kopfzeile)?

Das Ende der Auswahl sollte die letzte nicht leere Zelle in der Spalte sein.

Dave
quelle

Antworten:

5

Weitere Informationen finden Sie im Microsoft Support-Artikel Auswählen von Zellen / Bereichen mithilfe von Visual Basic-Verfahren in Excel , Nr. 19 ( Auswählen eines gesamten Bereichs zusammenhängender Zellen in einer Spalte ).

Peter Mortensen
quelle
Das wählt über eine Million Zeilen in der Arbeitsmappe aus, die ich verwende, obwohl alles über 300 oder so leer ist.
Dave
Wie wäre es mit: Sub LastCellBeforeBlankInColumn () / Range ("A1"). End (xldown) .Select / End Sub
2

Versuche dies:

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

oder dieses:

Range(Range(Cells(2, 1), Cells(2, 1)), Range(Cells(65535, 1), Cells(65535, 1)).End(xlUp)).Select
Michael Galos
quelle
2

In Bezug auf diese SO-Antwort ist die einzig sichere Methode die .find()Methode.
Alle anderen Methoden können zu falschen Ergebnissen führen, wenn Sie zuvor einige Zellen gelöscht haben.

Beispiel, um die letzten Zellen zu erhalten

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

Und eine spezifische Antwort auf Ihre Frage (vorausgesetzt, Ihre Daten befinden sich in Spalte 2, beginnend in Zeile 2).

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

Geben Sie hier die Bildbeschreibung ein

Nixda
quelle
1

Sie können die Excel-Tastaturkürzel verwenden. Versuchen Sie Ctrl+ Home.

Dies würde Sie zur Zelle A1 führen (wenn Sie das Einfrierfenster nicht verwendet haben). Kommen Sie eine Zelle nach unten und wählen Sie dann mit den Tasten Ctrl+ Shift+ Down arrowbis zur zuletzt eingegebenen Zeile.

Wenn Sie den Spaltenwert auswählen müssen, verwenden Sie die right arrowSchaltfläche anstelle der down arrowSchaltfläche.

Peter Mortensen
quelle
0

Dieser Code mittelt alles außer dem Header mit dem Header in Zelle "B1".

Dim GG as Long
GG = Application.WorksheetFunction.Average(ActiveSheet.Range("B2", Range("B2").End(xlDown)))
RWB
quelle