Общее описание задачи
Требуется создать макрос в WPS Office, привязанный к кнопке. При нажатии на кнопку макрос должен очистить старые данные на вкладке Сводный и полностью перестроить отчет, собрав информацию со всех рабочих вкладок.
В результате на вкладке будет создана таблица, в которой каждая строка соответствует уникальному артикулу. Если артикул встречается в нескольких листах, все значения по нему суммируются. В ячейках не должно быть формул, только статические значения, чтобы пользователь случайно их не стер.
Структура итоговой таблицы на листе «Сводный»
- Артикул - уникальное значение товара. Сбор всех уникальных артикулов со всех вкладок.
- Начальный остаток - сумма количества по данному артикулу с вкладки Начальный остаток.
- Принято - сумма количества по данному артикулу с вкладки Принято.
- Отгружено - сумма количества по данному артикулу с вкладки Отгружено (минусовое, смотри итоговую формулу).
- Списано - сумма количества по данному артикулу с вкладки Списано (пустая строка, если нет данных).
- Оприходовано - сумма количества по данному артикулу с вкладки Оприходовано.
- Остаток - автоматически рассчитывается по формуле:
Оста>ток = Начальный остаток + Принято - Отгружено - Списано + Оприходовано
Если результат отрицательный, необходимо визуально выделить ячейку (например, красной заливкой).
Требования к выполнению
- Макрос должен корректно работать с различными объемами данных: строк в исходных вкладках может быть от нескольких десятков до нескольких тысяч.
- Необходимо обрабатывать ситуации, когда в какой-либо из рабочих вкладок нет данных (пустая таблица) или отсутствуют необходимые столбцы.
- Столбцы на исходных листах имеют строгий порядок и наименования. Например, колонка с «Артикулом» идет первой, затем столбец с «Количеством» (на листах «Приход» и т.д.). Уточните согласование вне задачи.
- Макрос обязан быть быстрым и не зависать на большом количестве данных.
- Не допускается использование формул в финальном листе, допускаются только макросы.
- Не должно удаляться поле с «Артикулом наружу» - оно является первичным идентификатором.