Ваш путь или вопрос не так ясен, как я мог видеть ... Предположим, я понял, что вы хотите спросить, попробуйте это, пожалуйста. Код может выглядеть сложнее, чем должен, потому что я не знаю, как объявлена переменная cLS
. Если бы это было Long
, код был бы проще. Но это может быть строка "A:A"
...
В случае, если вам нужен диапазон от первой строки столбца до первой пустой строки (используя Find
):
Set rngEnd = wkLS.Range(wkLS.Columns(cLS).Cells(1, 1).Address, wkLS.Columns(cLS).Find("").Offset(-1, 0).Address)
Debug.Print rngEnd.Address
Если вам нужен диапазон от первой строки столбца до последней пустой строки:
Set rngEnd = wkLS.Range(wkLS.Columns(cLS).Cells(1, 1).Address, wkLS.Cells(wkLS.Cells(wkLS.Rows.count, wkLS.Columns(cLS).Column).End(xlUp).Row, 1).Address)
Если вам нужен прерывистый диапазон, содержащий только не пустые ячейки, до последней пустая строка, но предположим, что такие пустые ячейки существуют, используйте следующий код:
Dim wkLS As Worksheet, rngEnd As Range, cLS As Long
Set wkLS = ActiveSheet: cLS = 1 'for A:A column, change for yours
Dim c As Range, finalRange As Range
Set rngEnd = wkLS.Range(wkLS.Columns(cLS).Cells(1, 1).Address, _
wkLS.Cells(wkLS.Cells(wkLS.Rows.count, wkLS.Columns(cLS).Column).End(xlUp).Row, 1).Address)
For Each c In rngEnd.Cells
If c.Value <> "" Then
If finalRange Is Nothing Then
Set finalRange = c
Else
Set finalRange = Union(finalRange, c)
End If
End If
Next
Debug.Print finalRange.Cells.count, finalRange.Address