В контексте кода на листе рабочего листа будут работать следующие. Столбец 2 жестко закодирован, поэтому вы можете передать значение или изменить его в соответствии с вашими потребностями.
Dim rng As Range
Set rng = Me.Columns(2)
Dim row As Integer
row = 1
' Find first row with non-empty cell; bail out if first 100 rows empty
If IsEmpty(Me.Cells(1, 2)) Then
Do
row = row + 1
Loop Until IsEmpty(Me.Cells(row, 2)) = False Or row = 101
End If
If row = 101 Then Exit Sub
' We'll need to know the top row of the range later, so hold the value
Dim firstRow As Integer
firstRow = row
' Combine the text from each subsequent row until an empty cell is encountered
Dim result As String
Do
If result <> "" Then result = result & vbNewLine
result = result & Me.Cells(row, 2).Text
row = row + 1
Loop Until IsEmpty(Me.Cells(row, 2))
' Clear the content of the range
Set rng = Me.Range(Me.Cells(firstRow, 2), Me.Cells(row, 2))
rng.Clear
' Set the text in the first cell
Me.Cells(firstRow, 2).Value2 = result
Вы можете перемещаться по диапазону и сохранять содержимое ячейки в переменной, разделенной с помощью 'vbNewline', а затем в конце писать в ячейку? –
Спасибо. Является ли процедура выше наилучшего способа определения диапазонов? Их должно быть несколько тысяч, разделенных пробелами. – adayzdone