Kako kombinirati više Excel datoteka u jednu Excel radnu knjigu

Zvao me prijatelj koji je želio kombinirati više Excel datoteka u jednu Excel radnu knjigu. Imao je puno datoteka u mapi i želio je sve radne listove iz svih radnih knjiga spojiti u jednu radnu knjigu.

Iako se to može učiniti ručno, bilo bi dugotrajno i sklono pogreškama.

Međutim, jednostavan VBA kôd to može učiniti za nekoliko sekundi.

Kombinirajte više Excel datoteka u jednu datoteku

Ovdje je kôd koji može kombinirati više radnih knjiga programa Excel u navedenoj mapi u jednu radnu knjigu programa Excel:

Sub ConslidateWorkbooks () 'Izradio Sumit Bansal s https://trumpexcel.com Dim FolderPath kao niz Dim Dim File Name As String Dim Sheet Kao radni list Application.ScreenUpdating = False FolderPath = Environ ("userprofile") & "DesktopTest" Filename = Dir ( FolderPath & "*.xls*") Do While Filename "" Workbooks.Open Filename: = FolderPath & Filename, ReadOnly: = True za svaki list u ActiveWorkbook.Sheets Sheet.Copy After: = ThisWorkbook.Sheets (1) Next Sheet Workbooks (Naziv datoteke). Zatvori Naziv datoteke = Dir () Loop Application.ScreenUpdating = True End Sub

Kako koristiti ovaj kôd?

Evo koraka za korištenje ovog koda:

  • Stavite sve datoteke programa Excel koje želite kombinirati u mapu. Za potrebe ovog vodiča stvorio sam mapu pod nazivom Test i u njoj ima šest datoteka (4 Excel radne knjige i po 1 Power Point i Word svaka).
  • Otvorite novu radnu knjigu programa Excel.
  • Pritisnite ALT + F11 (ili idite na Developer -> Code -> Visual Basic). Ovo će otvoriti uređivač Visual Basic.
  • U VB uređivaču, u uređivaču projekata, desnom tipkom miša kliknite bilo koji objekt radne knjige i idite na Umetni -> Modul. Ovo će umetnuti modul za radnu knjigu.
  • Dvaput kliknite na modul. Otvorit će se kodni prozor s desne strane.
  • Kopirajte i zalijepite gornji kôd u prozor koda.
  • U kodu morate promijeniti sljedeći redak koda:
    FolderPath = Environment ("userprofile") & "DesktopTest"

    U ovom retku promijenite dio u dvostrukim navodnicima (označen narančastom bojom) s mjestom mape u kojoj imate datoteke koje želite kombinirati. U gore korištenom kodu mapa se nalazi na radnoj površini. U slučaju da ga imate na nekom drugom mjestu, navedite tu stazu ovdje.

  • Postavite kursor bilo gdje u kodu i kliknite zeleni gumb za reprodukciju u opcijama Alatne trake (ili pritisnite tipku F5).

Ovo će pokrenuti kôd, a svi radni listovi iz svih Excel datoteka u mapi bit će objedinjeni u jednu radnu knjigu.

Kako funkcionira ovaj kôd?

  • Kôd koristi funkciju DIR za preuzimanje naziva datoteka iz navedene mape.
  • Sljedeći redak dodjeljuje prvi naziv excel datoteke varijabli "Naziv datoteke".
    Naziv datoteke = Dir (FolderPath & “*.xls*”)
  • Zatim se petlja Do While koristi za provjeru jesu li sve datoteke pokrivene.
  • Unutar petlje "Do While", petlja "Za svaki" koristi se za kopiranje svih radnih listova u radnu knjigu u kojoj pokrećemo kôd.
  • Na kraju Do Loop -a koristi se sljedeći redak koda: Filename = Dir (). Dodjeljuje sljedeći naziv Excel datoteke varijabli Filename i petlja počinje iznova.
  • Kad su sve datoteke pokrivene, funkcija DIR vraća prazan niz, tada se petlja završava.

Evo objašnjenja funkcije DIR u knjižnici MSDN:

Upu vraća prvo ime datoteke koje odgovara imenu putanje. Da biste dobili dodatne nazive datoteka koji odgovaraju imenu putanje, nazovite Upu opet bez argumenata. Kad se više ne podudaraju nazivi datoteka, Upu vraća niz nulte duljine ("").

Jeste li ikada probali nešto ovakvo koristeći VBA? Podijelite ono što ste učinili i svi možemo naučiti iz toga.

Uštedite ludo vrijeme koristeći VBA. Provjerite Excel VBA TEČAJ.

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave