Добрый день, всем!
Макрос, которого желательно автоматизировать является связь между блоками "BDа.xls"-база данных и "MatrixMnP.xls"-блок анализа.
Вручную, рекордером сделал(часть кода прилагаю), но макрос получился жестко привязанный к конкретной странице.
Хотелос бы его автоматизировать и сделать более универсальным, чтоб можно было его приложить и при добавлении на этой странице новые данные, и на других страницах, которые в примере не показал.
Вот примерная логика макроса:
1. По значении ячейки с адрессом: А1(Sheets("BD MN")), определяющее начало Первого диапазона, найти совпадение в колонки F:F.
2. По значении ячейки с адрессом: А2(Sheets("BD MN")), определяющее конец Первого диапазона, найти совпадение в колонки F:F.
3. По условию Down[т.е. если начальная строка содержить Down для выборки берем только строки, которые содержать UP, и наоборот:
если начальная строка содержить UP для выборки берем только строки, которые содержать Down](с адрессом: В1(Sheets("BD MN"))), взяв за начало 2-й строки Sheets("BD MN") выбрать все значения отвечающим
условии UP, до конца Первого диапазона с колонки I:I и расположить их в книге "MatrixMnP.xls", начиная с ячейки "F20" и дальше вниз.
Эти значения всегда расположены через одну строчку.
4. Диапазоны не одинаковые по количество членов!
5. Сценарии анализа зависит от условия начало(начальная строка) диапазона - Down (применяем Application.Run "MatrixMnP.xls!RANFJFJ02MnF"
Application.Run "MatrixMnP.xls!Statistika9listovMnF)
или - UP (применяем Application.Run "MatrixMnP.xls!RANFJFJ02MnFа"
Application.Run "MatrixMnP.xls!Statistika9listovMnFа".
6. Обработка страницы, в случае Sheets("BD MN"), заканчивается когда достигаем в колонки F:F до 0 или 1,
(скорее до последней заполненной строке).
Одно из решении вероятно будет - циклами.
Один цикл = один диапазон.
1.Начало первого цикла = А1(Sheets("BD MN"))
Конец первого цикла = А2(Sheets("BD MN"))
Начало второго цикла = А2(Sheets("BD MN"))
Конец второго цикла = А3(Sheets("BD MN"))...
Получается цепочка из связанных циклов.
2.Циклы работают в колонке F:F.
Циклы обрабатывают разное количество ячеек, иногда только 2(начальная и конечная).
Сам вопрос: как сделать эту "цепочку из связанных циклов"?
Макрос, которого желательно автоматизировать является связь между блоками "BDа.xls"-база данных и "MatrixMnP.xls"-блок анализа.
Вручную, рекордером сделал(часть кода прилагаю), но макрос получился жестко привязанный к конкретной странице.
Хотелос бы его автоматизировать и сделать более универсальным, чтоб можно было его приложить и при добавлении на этой странице новые данные, и на других страницах, которые в примере не показал.
Вот примерная логика макроса:
1. По значении ячейки с адрессом: А1(Sheets("BD MN")), определяющее начало Первого диапазона, найти совпадение в колонки F:F.
2. По значении ячейки с адрессом: А2(Sheets("BD MN")), определяющее конец Первого диапазона, найти совпадение в колонки F:F.
3. По условию Down[т.е. если начальная строка содержить Down для выборки берем только строки, которые содержать UP, и наоборот:
если начальная строка содержить UP для выборки берем только строки, которые содержать Down](с адрессом: В1(Sheets("BD MN"))), взяв за начало 2-й строки Sheets("BD MN") выбрать все значения отвечающим
условии UP, до конца Первого диапазона с колонки I:I и расположить их в книге "MatrixMnP.xls", начиная с ячейки "F20" и дальше вниз.
Эти значения всегда расположены через одну строчку.
4. Диапазоны не одинаковые по количество членов!
5. Сценарии анализа зависит от условия начало(начальная строка) диапазона - Down (применяем Application.Run "MatrixMnP.xls!RANFJFJ02MnF"
Application.Run "MatrixMnP.xls!Statistika9listovMnF)
или - UP (применяем Application.Run "MatrixMnP.xls!RANFJFJ02MnFа"
Application.Run "MatrixMnP.xls!Statistika9listovMnFа".
6. Обработка страницы, в случае Sheets("BD MN"), заканчивается когда достигаем в колонки F:F до 0 или 1,
(скорее до последней заполненной строке).
Одно из решении вероятно будет - циклами.
Один цикл = один диапазон.
1.Начало первого цикла = А1(Sheets("BD MN"))
Конец первого цикла = А2(Sheets("BD MN"))
Начало второго цикла = А2(Sheets("BD MN"))
Конец второго цикла = А3(Sheets("BD MN"))...
Получается цепочка из связанных циклов.
2.Циклы работают в колонке F:F.
Циклы обрабатывают разное количество ячеек, иногда только 2(начальная и конечная).
Сам вопрос: как сделать эту "цепочку из связанных циклов"?