Маленький макрос для MS Excel: формирование выборок из мастер-таблицы
Маленький макрос для MS Excel 2010: формирование выборок из мастер-таблицы
На листе в Экселе находится таблица с сортами бумаг, обозванная как именованный диапазон.
Каждая строка -- отдельный сорт бумаги.
В таблице имеются столбцы, в которых через Истина/Ложь задано -- подходит ли данная бумага (строка) для данной технологии печати (столбец). Над заголовками таких столбцов указаны имена для будущих именованных диапазонов, в которые надо собрать сорта бумаги, подходящие для данной технологии печати.
Если значение в столбце применимости не задано (пустое) -- считаем что там "ЛОЖЬ".
Задача макроса:
просканировать мастер-таблицу, и создать такое количество подчиненных списков бумаг (таблиц в одну колонку), сколько столбцов поименовано в мастер-таблице в специальной строке. Каждую созданную таблицу необходимо оформить как именованный диапазон в Excel, и поименовать именем, соответствующим заголовку столбца. Соответственно если интервал с таким именем уже имеется -- его необходимо переопределить.
В создаваемых таблицах должен быть один столбец, в котором должны быть ссылки на краткие названия бумаги из исходного списка.
В приложенном файле приведен пример того, как должны выглядеть таблицы на выходе после работы макроса.
Заголовок: название технологии печати
Под заголовком -- название именованного диапазона
Дальше идет уже собственно список, оформленный как именованный диапазон (с присвоением соответствующего имени).
Макрос необходимо повесить на кнопку, разместив кнопку под мастер-таблицей.
Дополнение:
эти таблицы -- это часть большого калькулятора.
После формирования таблиц -- калькулятор целиком импортируется в OpenOffice Calc, и должен корректно в нем работать! Насколько мне известно, поставленную задачу в принципе можно решить без макроса, через формулы, но некоторые функции MS Excel в ОО работать не будут. Поэтому если будут предложения сделать это через формулы -- то формулы надо использовать только такие, которые будут корректно работать в ОО после импорта.
Не думаю что это реально сделать, но мало ли.