Kuidas ühendada mitu Exceli faili ühte Exceli töövihikusse

Mulle helistas sõber, kes soovis ühendada mitu Exceli faili ühte Exceli töövihikusse. Tal oli kaustas palju faile ja ta soovis saada kõikide töövihikute töölehed ühte töövihikusse.

Kuigi seda saab teha käsitsi, oleks see aeganõudev ja veaohtlik.

Kuid lihtne VBA -kood saab seda teha mõne sekundiga.

Ühendage mitu Exceli faili üheks failiks

Siin on kood, millega saab ühendada mitu Exceli töövihikut määratud kaustas üheks Exceli töövihikuks:

Sub ConslidateWorkbooks () 'Lõi Sumit Bansal saidilt https://trumpexcel.com Dim FolderPath stringina Dim Failinimi stringina Dim Sheet töölehena Application.ScreenUpdating = False FolderPath = Environ ("userprofile") & "DesktopTest" Filename = Dir ( FolderPath & "*.xls*") Do while Filename "" Workbooks.Open Filename: = FolderPath & Filename, ReadOnly: = True For Iga Sheet ActiveWorkbook.Sheets Sheet.Copy After: = ThisWorkbook.Sheets (1) Järgmised töölehevihikud [Failinimi]. Sulgege Failinimi = Suuna () Loop Application. ScreenUpdating = Tõeline lõpp

Kuidas seda koodi kasutada?

Selle koodi kasutamiseks toimige järgmiselt.

  • Pange kõik Exceli failid, mida soovite ühendada, kausta. Selle õpetuse jaoks olen loonud kausta nimega Test ja selles on kuus faili (4 Exceli töövihikut ja 1 Power Point ja Word).
  • Avage uus Exceli töövihik.
  • Vajutage ALT + F11 (või minge jaotisse Arendaja -> Kood -> Visual Basic). See avab Visual Basic Editori.
  • Paremklõpsake VB -redaktoris projektiredaktoris suvalist töövihiku objekti ja minge Sisesta -> Moodul. See lisab töövihiku mooduli.
  • Topeltklõpsake moodulit. See avab paremal koodi akna.
  • Kopeerige ja kleepige ülaltoodud kood koodiaknasse.
  • Koodis peate muutma järgmist koodirida:
    FolderPath = Keskkond ("userprofile") & "DesktopTest"

    Muutke selles reas osa jutumärkides (oranžiga esiletõstetud) selle kausta asukohaga, milles on failid, mida soovite ühendada. Ülaltoodud koodis on kaust töölaual. Kui teil on see mõnes muus kohas, määrake see tee siin.

  • Asetage kursor koodi suvalisse kohta ja klõpsake tööriistariba suvandites rohelist esitusnuppu (või vajutage klahvi F5).

See käivitab koodi ja kõik kausta kõigi Exceli failide töölehed koondatakse ühte töövihikusse.

Kuidas see kood töötab?

  • Kood kasutab DIR -funktsiooni, et saada failinimed määratud kaustast.
  • Järgmine rida määrab esimese Exceli faili nime muutujale „Failinimi”.
    Failinimi = Juht (kaustatee ja "*.xls*")
  • Seejärel kasutatakse tsüklit Do while, et kontrollida, kas kõik failid on kaetud.
  • Silmas „Tehke aega” kasutatakse tsüklit „Iga jaoks”, et kopeerida kõik töölehed töövihikusse, milles me koodi käitame.
  • Do Loop lõpus kasutatakse järgmist koodirida: Filename = Dir (). See määrab muutuvale failinimele järgmise Exceli failinime ja tsükkel algab uuesti.
  • Kui kõik failid on kaetud, tagastab funktsioon DIR tühja stringi, mis on siis, kui tsükkel lõpeb.

Siin on MSDN -i teegis oleva DIR -funktsiooni selgitus:

Rež tagastab esimese faili nime, mis vastab tee nimele. Tee nimele vastavate täiendavate failinimede hankimiseks helistage Rež jälle ilma argumentideta. Kui enam failinimesid ei sobi, Rež tagastab nullpikkuse stringi (“”).

Kas olete kunagi proovinud midagi sellist VBA abil? Jagage seda, mida tegite, ja me kõik saame sellest õppida.

Säästke hullult palju aega VBA abil. Tutvu Excel VBA KURSUS.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave