Не читал книг по VBA...
А какие проблемы?
Расположение ячеек обычно задается положением курсора.
Например: Ставим курсор на первую строку и запускаем макрос - макрос "пробегает" до конца таблицы
Тут хорошо объявить переменную типа Range, присвоить ей первую обрабатываемую ячейку, а затем все обращения к ячейкам записать относительно нее.
Код: Выделить всё
dim r as range
set r = activecell.entirecolumn.cells(1) ' Это будет первая ячейка (т.е. из
'колонки A) в той строке, где стоит курсот
r.range("A1") 'Это опять она же
r.range("B1") 'Это ее соседка слева
Еще частенько бывает нужно обработать ближайшую таблицу вокруг курсора
Как, к примеру, происходит когда мы ставим курсор в середину таблицы и вызываем
Данные/Сортировка, или что-нибудь другое.
Тут надо так:
set r = ActiveCell.CurrentRegion 'Это вся ближайшая таблица
r.rows(i) ' а это ее i-ая строка
r.columns(j) 'ну а это - j-ая колонка
См. следующие методы класса Range
.Range
.Offset
.Cells
.EntireRow .EntireColumn
.Rows .Columns
.Areas
.Start .End
.CurrentRegion
Когда изучите (справки по VBA вполне достаточно) все эти методы Ваш вопрос отпадет сам собой.