Литература по "сложным" задачам в VBА?

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
WP
Сообщения: 11
Зарегистрирован: 20 май 2005, 15:57

Привет, всем! Посоветуйте, пж., какую-нибудь литературу с решениями "сложных" задач в VBA. В принципе, в основном меня интересует Excel. В тех книгах, которые просматривала, задачи только с известными фиксированными данными, а, например, случаи, когда расположение ячеек с нужными данными меняется не видела.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Не читал книг по 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 вполне достаточно) все эти методы Ваш вопрос отпадет сам собой.
Ответить