Cum se combină mai multe fișiere Excel într-un singur registru de lucru Excel

Am primit un apel de la un prieten care dorea să combine mai multe fișiere Excel într-un singur registru de lucru Excel. Avea o mulțime de fișiere într-un dosar și dorea să obțină toate foile de lucru din toate registrele de lucru într-un singur registru de lucru.

Deși acest lucru se poate face manual, acesta ar consuma mult timp și va fi predispus la erori.

Cu toate acestea, un cod VBA simplu poate face acest lucru în câteva secunde.

Combinați mai multe fișiere Excel într-un singur fișier

Iată codul care poate combina mai multe registre de lucru Excel într-un folder specificat într-un singur registru de lucru Excel:

Sub ConslidateWorkbooks () 'Creat de Sumit Bansal de la https://trumpexcel.com Dim FolderPath as String Dim Filename As String Dim Sheet As Worksheet Application.ScreenUpdating = False FolderPath = Environ ("userprofile") & "DesktopTest" Filename = Dir ( FolderPath & "* .xls *") Faceți în timp ce numele fișierului "" Workbooks.Open Filename: = FolderPath & Filename, ReadOnly: = Adevărat pentru fiecare coală din ActiveWorkbook.Sheets Sheet.Copy After: = ThisWorkbook.Sheets (1) Next Sheet Workbooks (Filename). Închideți Filename = Dir () Loop Application.ScreenUpdating = True End Sub

Cum se folosește acest cod?

Iată pașii pentru utilizarea acestui cod:

  • Puneți toate fișierele Excel pe care doriți să le combinați într-un folder. În scopul acestui tutorial, am creat un folder numit Test și conțin șase fișiere (4 registre de lucru Excel și câte 1 Power Point și Word).
  • Deschideți un nou registru de lucru Excel.
  • Apăsați ALT + F11 (sau accesați Developer -> Code -> Visual Basic). Aceasta va deschide Editorul Visual Basic.
  • În Editorul VB, în Editorul de proiecte, faceți clic dreapta pe oricare dintre obiectele din registrul de lucru și accesați Insert -> Module. Aceasta va insera un modul pentru registrul de lucru.
  • Faceți dublu clic pe modul. Se va deschide fereastra de cod din dreapta.
  • Copiați și lipiți codul de mai sus în fereastra de cod.
  • În cod, trebuie să modificați următoarea linie de cod:
    FolderPath = Environ ("userprofile") & "DesktopTest"

    În această linie, modificați partea între ghilimele duble (evidențiată în portocaliu) cu locația folderului în care aveți fișierele pe care doriți să le combinați. În codul folosit mai sus, folderul se află pe desktop. În cazul în care îl aveți în altă locație, specificați acea cale aici.

  • Plasați cursorul oriunde în cod și faceți clic pe butonul verde de redare din opțiunile Barei de instrumente (sau apăsați tasta F5).

Aceasta va rula codul și toate foile de lucru din toate fișierele Excel din folder vor fi consolidate într-un singur registru de lucru.

Cum funcționează acest cod?

  • Codul folosește funcția DIR pentru a obține numele fișierelor din folderul specificat.
  • Următorul rând atribuie primul nume de fișier Excel variabilei „Numele fișierului”.
    Numele fișierului = Dir (FolderPath & „* .xls *”)
  • Apoi, bucla Do While este utilizată pentru a verifica dacă toate fișierele au fost acoperite.
  • În bucla „Faceți în timp ce”, bucla „Pentru fiecare” este utilizată pentru a copia toate foile de lucru în registrul de lucru în care rulăm codul.
  • La sfârșitul buclei Do, se folosește următoarea linie de cod: Filename = Dir (). Atribuie următorul nume de fișier Excel variabilei Numele fișierului și bucla începe din nou.
  • Când toate fișierele sunt acoperite, funcția DIR returnează un șir gol, care se termină când bucla se termină.

Iată o explicație a funcției DIR din biblioteca MSDN:

Dir returnează primul nume de fișier care se potrivește cu calea. Pentru a obține orice nume de fișiere suplimentare care se potrivesc cu calea, sunați Dir din nou fără argumente. Când nu se mai potrivesc nume de fișiere, Dir returnează un șir de lungime zero („”).

Ați încercat vreodată ceva de acest fel folosind VBA? Împărtășiți ceea ce ați făcut și cu toții putem învăța din asta.

Economisiți o sumă nebună de timp folosind VBA. Verificați CURS Excel VBA.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave