Автоматическое копирование таблицы на другой лист

Автор Бали, 13.10.2016, 12:40

« назад - далее »

Бали

Здравствуйте, друзья.
Имеем «умную» таблицу на листе «Ведомость», в нее добавляем данные. Таблица имеет столбцы в часть которых вводим данные в ручную, другая часть заполняется с помощью формул. Строки в таблице добавляются, но наступит момент, когда часть строк будет удалена за ненадобностью.
Помогите решить следующую задачу:
Требуется автоматическое копирование данных этой таблицы (лист «Ведомость») с сохранением форматирования, ширины и высоты строк и столбцов на лист «Москва». При этом данные должны быть значениями, а столбцы должны быть построены в другой последовательности, один из столбцов не нужно копировать вовсе. Хотелось бы заполнить одну таблицу, переключится на  лист «Москва», а там все уже заполнено, далее уже в ручную копируется этот лист в новую книгу правится фильтрами и сохраняется как отчет.
Как это работает сейчас:
Реализовано с помощью записи обычного макроса, копировать столбец из одной таблицы в другую. Запускается макрос кнопкой «Заполнить лист Москва» на листе «Ведомость».
Что в этом способе не нравится:
Примитивно, на больших объемах данных время работы макроса увеличивается и еще все это мелькает перед глазами, при подготовки отчета может возникнуть ошибка пользователя (забыл обновить/заполнить лист «Москва».
Если существуют решения этой задачи, помогите ее решить. Несколько дней пытаюсь найти на форумах подобное, но без успеха. Сам я в VBA не силен, поэтому прошу помощи. Спасибо.
Аналогичная тема создана: http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=83047&TITLE_SEO=83047-avtomaticheskoe-kopirovanie-tablitsy-na-drugoy-list-s-izmeneniem-polozheniya-stolbtsov#postform

vikttur

Цитироватьна больших объемах данных время работы макроса увеличивается
Нужно переходить на обработку в массивах. Работа с объектами листа медленная
Цитироватьвсе это мелькает перед глазами
Перед обработкой отключать обновление экрана:
Application.ScreenUpdating = False
После - включать:
Application.ScreenUpdating = True

Бали

#2
ЦитироватьНужно переходить на обработку в массивах. Работа с объектами листа медленная
Подскажите, как можно это реализовать? Если можете сделать пример, я буду очень благодарен.