Страницы: 1
RSS
VBA. Копировать/вставить данные из столбца по названию столбца
 
Уважаемы знатоки, помогите решить задачу. Есть 2 файла - 1 сбор данных за весь год, 2 выгрузка из системы (ежедневная).
Проблема заключается в том, что часть колонок может отличаться по количеству, но всегда имеет название. Например, сегодня в выгрузке 8 колонок, завтра 10.
В файле, в который инфо собирается есть все возможные колонки.
При чем первые 5 колонок статичны, они есть во всех выгрузках (например, название клиента, его код, дата, номер документа, номер продукта и тд).

Как собарть данные файлы в один? Желательно макрос, чтобы находил колонку в исходнике и вставлял данные в 1ю пустую строку исходя из кол-ва строк в колонке А

Пробовала через Power Query. да, все прекрасно, она собирает все файлы в один и ставит данные по нужным колонкам, НО сегодня я столкнулась с тем, что часть данных она дублирует. Я переповерила все исходники, дубликатов нет. А в выдаваемой таблице есть.. и очень много..

в файлах иходниках примерно по 3-3,5 тыс строк. Соотвественно, в основаном сейчас около 50тыс. Возможно Query из-за этого сходит с ума.
Изменено: Мария - - 03.09.2020 17:24:28
 
Чтобы написать макрос нужно видеть ваши 2 файла - файл куда собираем (со всеми столбцами) и 1-2 файла для теста откуда будем брать данные.
Данные вашей компании нам не нужны, можете заменить их на апельсины-мандарины (или 1-2-3).  
 
ИЗВИНИТЕ!!! Что-то я не подумала об этом.
TEST - единый файл, куда нужно все собирать.
Daily Pricing - это исходники.

первые 21 колонка ( A-U) статичны во всех файла, а вот дальше... их может быть меньше, можеты больше... Но в основном файле собраны все возможные колонки с их названиями
 
Вот файл с макросом. Поместите все файлы с отчётами (можно даже этот файл с макросом, но не обязательно) в одну папку. Откройте этот файл с макросом и нажмите оранжевую кнопку (либо Alt+F8 - выполнить). Макрос по очереди откроет каждый файл из указанной папке и скопирует все столбцы ТОЛЬКО с листа "Daily Customer Pricing Analysis" в Общий файл на лист Main.
 
New, Вы ГЕНИЙ!!!!!!!!! СПАСИБО ОГРОМНОЕ!!!!! Все работает!!!!!!
 
New,  Добрый день! Спасибо Вам огромное еще раз, что помогли написать код для копирования колонок по их названию.
У меня возникла проблема, потому что наши IT (очнь уж деятельные) сильно изменили формат отчета. Я хотела добавить в код форматирование файла до копирования в основной.
Все хорошо, только форматирует он мне только 1 файл, а с 2м файлом проделывает только первые шаги (удаление лишних строк и колонок)

Когда нажимаешь Esc, он даже не показывает, где он останавливается.
При просмотре форматирования файл, я понимаю, что останавливает цикл форматирования файла на этом моменте:
Код
Columns("K:S").Select
Selection.Delete Shift:=xlToLeft

Cells.Select
Range("G1").Activate 


При этом форматирование на первом файле работает прекрасно.

Помогите, пожалуйста, решиь задачку  

Я добавила полный код в файл ОБЩИЙ (Macro2)
Страницы: 1
Наверх