Добрый день!
Мне очень понравился Ваш сайт. Большое Вам за него спасибо! Особенно привлекательным его делает то, что различные среды программирования Вы рассматриваете не только по отдельности, но также разбираете связь между ними, например, написание 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