Задача выделить диапазон выше текущей ячейки:
А вот и код с комментариями:
Sub SelectColumnData()
' что делать при ошибке
On Error GoTo errors
' нижний адрес
Dim a1 As String
' верхний адрес
Dim a2 As String
' диапазон
Dim ran As Range
' если не верхняя ячейка
If (ActiveCell.Row <> 1) Then
' пойти вверх
ActiveCell.Offset(-1, 0).Select
' взять адрес ячейки
a1 = ActiveCell.Address
' будем подниматься
For x = 1 To (ActiveCell.Row - 1)
' на одну вверх
ActiveCell.Offset(-1, 0).Select
' если не число выход
If IsNumeric(ActiveCell.Value) <> True Then
' на одну вниз
ActiveCell.Offset(1, 0).Select
' выход
GoTo nexts
End If
' если пустая
If IsEmpty(ActiveCell.Value) = True Then
' на одну вниз
ActiveCell.Offset(1, 0).Select
' выход
GoTo nexts
End If
Next x
nexts:
' получаем адрес вырехней
a2 = ActiveCell.Address
' строим диапазон
Set ran = Range(a1 + ":" + a2)
' выделяем
ran.Select
End If
' выходим из процедуры
Exit Sub
' ошибка, зовем на помощь
errors:
MsgBox "Ошибка сообщите разработчику"
End Sub
А вот и результат: