Како комбиновати више Екцел датотека у једну Екцел радну свеску

Добио сам позив од пријатеља који је желео да комбинује више Екцел датотека у једну Екцел радну свеску. Имао је много датотека у фасцикли и хтео је да све радне листове из свих радних свезака споји у једну радну свеску.

Иако се то може урадити ручно, било би дуготрајно и склоно грешкама.

Међутим, једноставан ВБА код то може учинити за неколико секунди.

Комбинујте више Екцел датотека у једну датотеку

Ево кода који може да комбинује више Екцел радних књига у наведеној фасцикли у једну Екцел радну свеску:

Суб ЦонслидатеВоркбоокс () 'Цреатед би Сумит Бансал фром хттпс://трумпекцел.цом Дим ФолдерПатх Ас Стринг Дим Филе Наме Ас Стринг Дим Схеет Ас Ворксхеет Апплицатион.СцреенУпдатинг = Фалсе ФолдерПатх = Енвирон ("усерпрофиле") & "ДесктопТест" Филенаме = Дир ( ФолдерПатх & "*.клс*") До Вхиле Филенаме "" Воркбоокс.Опен Филенаме: = ФолдерПатх & Филенаме, РеадОнли: = Труе за сваки лист у АцтивеВоркбоок.Схеетс Схеет.Цопи Афтер: = ТхисВоркбоок.Схеетс (1) Нект Схеет Воркбоокс (Филенаме) .Цлосе Филенаме = Дир () Лооп Апплицатион.СцреенУпдатинг = Труе Енд Суб

Како користити овај код?

Ево корака за коришћење овог кода:

  • Ставите све Екцел датотеке које желите да комбинујете у фасциклу. За потребе овог водича, креирао сам фасциклу под називом Тест и у њој има шест датотека (по 4 Екцел радне свеске и по 1 Повер Поинт и Ворд).
  • Отворите нову Екцел радну свеску.
  • Притисните АЛТ + Ф11 (или идите на Девелопер -> Цоде -> Висуал Басиц). Ово ће отворити уређивач Висуал Басиц.
  • У ВБ Едитор -у, у Едитор -у пројекта, десним тастером миша кликните на било који објекат радне свеске и идите на Инсерт -> Модуле. Ово ће уметнути модул за радну свеску.
  • Двапут кликните на модул. Отвориће се кодни прозор са десне стране.
  • Копирајте и залепите горњи код у прозор кода.
  • У коду морате да промените следећи ред кода:
    ФолдерПатх = Енвирон ("усерпрофиле") & "ДесктопТест"

    У овој линији промените део у двоструким наводницима (означен наранџастом бојом) са локацијом фасцикле у којој се налазе датотеке које желите да комбинујете. У горе коришћеном коду, фасцикла се налази на радној површини. У случају да га имате на некој другој локацији, наведите ту путању овде.

  • Поставите курсор било где у коду и кликните на зелено дугме за репродукцију у опцијама Тоолбар -а (или притисните тастер Ф5).

Ово ће покренути код и сви радни листови из свих Екцел датотека у фасцикли ће се објединити у једну радну свеску.

Како функционише овај код?

  • Код користи функцију ДИР за преузимање назива датотека из наведене фасцикле.
  • Следећи ред додељује прво име Екцел датотеке променљивој „Име датотеке“.
    Назив датотеке = Дир (ФолдерПатх & “*.клс*”)
  • Затим се петља До Вхиле користи за проверу да ли су све датотеке покривене.
  • Унутар петље „До Вхиле“, петља „За сваки“ се користи за копирање свих радних листова у радну свеску у којој покрећемо код.
  • На крају До Лооп -а користи се следећи ред кода: Филенаме = Дир (). Он додељује следеће име Екцел датотеке променљивој Филенаме и петља почиње поново.
  • Када су све датотеке покривене, функција ДИР враћа празан низ, тада се петља завршава.

Ево објашњења функције ДИР у библиотеци МСДН:

Дир враћа прво име датотеке које одговара имену путање. Да бисте добили додатна имена датотека која одговарају имену путање, позовите Дир опет без аргумената. Када се више имена датотека не подударају, Дир враћа низ нулте дужине („”).

Да ли сте икада пробали нешто овакво користећи ВБА? Поделите оно што сте урадили и сви можемо научити из тога.

Уштедите лудо време користећи ВБА. Погледајте Екцел ВБА КУРС.

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave