Шаг 65 - Выделение диапазона выше текущей ячейки

Задача выделить диапазон выше текущей ячейки:

А вот и код с комментариями:

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

А вот и результат:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: