Шаг 73 - Выделенный диапазон Выше ячейки, второй метод

Добрый день!

Мне очень понравился Ваш сайт. Большое Вам за него спасибо! Особенно привлекательным его делает то, что различные среды программирования Вы рассматриваете не только по отдельности, но также разбираете связь между ними, например, написание DLL для Excel в VC++.

Однако, некоторые примеры вызывают возражения. Вот, скажем, задача выделить диапазон выше текущей ячейки (см. "Шаг 65 - Выделение диапазона выше текущей ячейки"). По-моему, слишком длинное решение такой простой задачи. Я бы это сделал так, воспользовавшись методом Union:

Sub SelectColumnData()
	If ActiveCell.Row = 1 Then Exit Sub
	If ActiveCell.Offset(-1, 0) <> "" Then
		ActiveCell.Offset(-1,0).Activate
	If ActiveCell.Row = 1 Then Exit Sub
	Do While Not ActiveCell.Offset(-1, 0) = ""
		Union(Selection, ActiveCell.Offset(-1, 0)).Select
		If ActiveCell.Row = 1 Then Exit Do
	Loop
End Sub

Задача очень простая, не правда ли, и решается четырьмя строками кода (за исключением трех if, которые отсекают выход за пределы листа). Переменные совсем не нужны, как это очень часто бывает в VBA.

Гуляев Александр Gulyaev@gw.tander.ru


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