Kako združiti več Excelovih datotek v en Excelov delovni zvezek

Klical me je prijatelj, ki je želel združiti več Excelovih datotek v en Excelov delovni zvezek. V mapi je imel veliko datotek in želel je združiti vse delovne liste iz vseh delovnih zvezkov v en sam delovni zvezek.

Čeprav je to mogoče narediti ročno, bi bilo to zamudno in nagnjeno k napakam.

Vendar lahko preprosta koda VBA to naredi v nekaj sekundah.

Združite več datotek Excel v eno datoteko

Tukaj je koda, ki lahko združi več Excelovih delovnih zvezkov v določeni mapi v en Excelov delovni zvezek:

Sub ConslidateWorkbooks () 'Ustvaril Sumit Bansal iz https://trumpexcel.com Dim FolderPath As String Dim Ime datoteke kot String Dim Sheet Kot delovni list Application.ScreenUpdating = False FolderPath = Environ ("userprofile") & "DesktopTest" Filename = Dir ( FolderPath & ". (Ime datoteke). Zaprite Ime datoteke = Dir () Loop Application.ScreenUpdating = True End Sub

Kako uporabljati to kodo?

Tukaj je nekaj korakov za uporabo te kode:

  • Vse datoteke Excel, ki jih želite združiti, vstavite v mapo. Za namene te vadnice sem ustvaril mapo z imenom Test in v njej je šest datotek (po 4 Excelove delovne zvezke ter po 1 Power Point in Word).
  • Odprite nov delovni zvezek Excel.
  • Pritisnite ALT + F11 (ali pojdite na Razvijalec -> Koda -> Visual Basic). S tem se odpre urejevalnik Visual Basic.
  • V urejevalniku VB v urejevalniku projektov z desno tipko miške kliknite kateri koli predmet delovnega zvezka in pojdite na Vstavi -> Modul. To bo vstavilo modul za delovni zvezek.
  • Dvokliknite modul. Odprlo se bo okno za kodo na desni.
  • Kopirajte in prilepite zgornjo kodo v okno za kodo.
  • V kodi morate spremeniti naslednjo vrstico kode:
    FolderPath = Environment ("userprofile") & "DesktopTest"

    V tej vrstici spremenite del v dvojnih narekovajih (označen z oranžno) z lokacijo mape, v kateri imate datoteke, ki jih želite združiti. V zgornji kodi je mapa na namizju. Če ga imate na kakšnem drugem mestu, pot določite tukaj.

  • Kazalec postavite kamor koli v kodi in kliknite zeleni gumb za predvajanje v možnostih Orodne vrstice (ali pritisnite tipko F5).

To bo zagnalo kodo in vsi delovni listi iz vseh Excelovih datotek v mapi bodo združeni v en sam delovni zvezek.

Kako deluje ta koda?

  • Koda uporablja funkcijo DIR za pridobivanje imen datotek iz podane mape.
  • Naslednja vrstica dodeli prvo ime datoteke excel spremenljivki "Ime datoteke".
    Ime datoteke = Dir (FolderPath & “*.xls*”)
  • Nato se zanka Do While uporablja za preverjanje, ali so vse datoteke pokrite.
  • V zanki »Do While« se zanka »For Each« uporablja za kopiranje vseh delovnih listov v delovni zvezek, v katerem izvajamo kodo.
  • Na koncu Do Loopa se uporabi naslednja vrstica kode: Filename = Dir (). Spremenljivki Filename dodeli naslednje ime datoteke Excel in zanka se znova zažene.
  • Ko so vse datoteke pokrite, funkcija DIR vrne prazen niz, ko se zanka konča.

Tu je razlaga funkcije DIR v knjižnici MSDN:

Dir vrne prvo ime datoteke, ki se ujema z imenom poti. Če želite pridobiti dodatna imena datotek, ki se ujemajo z imenom poti, pokličite Dir spet brez argumentov. Ko se imena datotek ne ujemajo več, Dir vrne niz ničelne dolžine (“”).

Ste že kdaj poskusili kaj takega z uporabo VBA? Delite, kar ste storili, in vsi se lahko iz tega naučimo.

Prihranite noro količino časa z uporabo VBA. Oglejte si Excel VBA TEČAJ.

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave