Das hängt dann doch mit den Leerzellen zusammen,
22.02.2017 19:34:12
Luc:-?
…Kailash,
und natürlich der unterschiedlichen Wirkung von xlDown und xlUp. Da ich beide direkt auf den benannten Bereich angewendet hatte, findet Letzteres in deinem Bsp die Zelle über der 1. dieses Bereichs (als letzte nicht-leere Zelle) und verlässt somit hier diesen Bereich, während Ersteres die letzte nicht-leere Zelle vor der 1. leeren in diesem Bereich findet. Gäbe es keine LeerZellen zwischendurch, würde so auch bis zum letzten Eintrag ausgewählt wdn (hier allerdings wg der StartKomponente inkl der Zelle E9).
Insofern ist Daniels Variante erfolgreicher, denn hier wird mit der 1.Zelle des Bereichs begonnen, während mein Grund für den Einsatz der StartKomponente, leere Zellen am Anfang des benannten Bereichs, so nicht erfolgreich umgesetzt wdn kann (s.oben). Allerdings hatte Daniel das gar nicht erst berücksichtigt. Wollte man das aber tun, müsste man wohl folgendes Pgm benutzen:
Sub PartSelect()
Const naRelBer$ = "List_columns"
Dim rc As Long
With Range(naRelBer)
rc = .Rows.Count
Debug.Print .Cells(1).Address(0, 0), .Cells(rc).Address(0, 0) & vbLf & .Cells(1).End _
(xlDown).Address(0, 0), .Cells(1).End(xlUp).Address(0, 0) & vbLf & _
.Cells(rc).End(xlDown).Address(0, 0), .Cells(rc).End(xlUp).Address(0, 0)
If IsEmpty(.Cells(1)) Or IsEmpty(.Cells(rc)) Then
If IsEmpty(.Cells(1)) Then
Range(.End(xlDown), .Cells(rc).End(xlUp)).Select
Else: Range(.Cells(1), .Cells(rc).End(xlUp)).Select
End If
Else: .Select
End If
End With
End Sub
Die Debug.Print-Zeilen dienen hier nur zur Demo der Wirkung der beiden o.g. xlKonstanten auf Anfang und Ende des benannten Bereichs und können (später) entfernt wdn.
Falls die Zwischendurch-LeerZellen ebenfalls nicht ausgewählt wdn sollen, musst du auf meinen vorhergehenden letzten Vorschlag zurückgreifen, wodurch ein unzusammenhängender Teil- des benannten Bereichs ausgewählt wdn könnte, wenn seine datenhaltigen Teile per vbFkt Union zusammengefasst würden.
Luc :-?