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

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

65_1.gif (1052 b)

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

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

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

65_2.gif (832 b)


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 18.04.2000