Шаг 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


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



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