Kaip sujungti kelis „Excel“ failus į vieną „Excel“ darbaknygę

Man paskambino draugas, kuris norėjo sujungti kelis „Excel“ failus į vieną „Excel“ darbaknygę. Jis turėjo daug failų aplanke ir norėjo visus darbo lapus iš visų darbaknygių surinkti į vieną darbaknygę.

Nors tai galima padaryti rankiniu būdu, tai užtruks daug laiko ir bus klaidų.

Tačiau paprastas VBA kodas tai gali padaryti per kelias sekundes.

Sujunkite kelis „Excel“ failus į vieną failą

Čia yra kodas, kuris gali sujungti kelias „Excel“ darbaknyges nurodytame aplanke į vieną „Excel“ darbaknygę:

Sub ConslidateWorkbooks () 'Sukūrė Sumit Bansal iš https://trumpexcel.com Dim FolderPath As String Dim Filename As String Dim Sheet As Workheet Application.ScreenUpdating = False FolderPath = Environ ("userprofile") & "DesktopTest" Filename = Dir ( FolderPath & "*.xls*") Do while Filename "" Workbooks.Open Filename: = FolderPath & Filename, ReadOnly: = True For Every Sheet in ActiveWorkbook.Sheets Sheet.Copy After: = ThisWorkbook.Sheets (1) Kitas darbalapis [Failo pavadinimas]. Uždaryti Failo vardas = Dir () Loop Application.ScreenUpdating = Tikroji pabaiga

Kaip naudotis šiuo kodu?

Štai kodo naudojimo veiksmai:

  • Įdėkite visus „Excel“ failus, kuriuos norite sujungti, į aplanką. Šios pamokos tikslais sukūriau aplanką pavadinimu „Test“ ir jame yra šeši failai (po 4 „Excel“ darbaknyges ir po 1 „Power Point“ ir „Word“).
  • Atidarykite naują „Excel“ darbaknygę.
  • Paspauskite ALT + F11 (arba eikite į Kūrėjas -> Kodas -> Visual Basic). Bus atidarytas „Visual Basic“ redaktorius.
  • VB redaktoriuje, projekto redaktoriuje, dešiniuoju pelės mygtuku spustelėkite bet kurį darbaknygės objektą ir eikite į Insert -> Module. Taip įterpsite darbo knygos modulį.
  • Dukart spustelėkite modulį. Jis atidarys kodo langą dešinėje.
  • Nukopijuokite ir įklijuokite aukščiau esantį kodą į kodo langą.
  • Kode turite pakeisti šią kodo eilutę:
    FolderPath = Environ ("userprofile") & "„DesktopTest“"

    Šioje eilutėje pakeiskite dalį dvigubomis kabutėmis (paryškintomis oranžine spalva), nurodydami aplanko, kuriame yra failai, kuriuos norite sujungti, vietą. Aukščiau naudojamame kode aplankas yra darbalaukyje. Jei turite jį kitoje vietoje, nurodykite šį kelią čia.

  • Užveskite žymeklį bet kurioje kodo vietoje ir įrankių juostos parinktyse spustelėkite žalią atkūrimo mygtuką (arba paspauskite klavišą F5).

Taip bus paleistas kodas ir visi darbalapiai iš visų aplanke esančių „Excel“ failų bus sujungti į vieną darbaknygę.

Kaip veikia šis kodas?

  • Kodas naudoja DIR funkciją, kad gautų failų pavadinimus iš nurodyto aplanko.
  • Ši eilutė priskiria pirmąjį „Excel“ failo pavadinimą kintamajam „Failo vardas“.
    Failo pavadinimas = Dir (FolderPath & "*.xls*")
  • Tada „Do Do“ kilpa naudojama patikrinti, ar visi failai buvo uždengti.
  • Cikle „Daryk“ ciklas „Kiekvienam“ naudojamas kopijuoti visus darbalapius į darbaknygę, kurioje vykdome kodą.
  • „Do Loop“ pabaigoje naudojama tokia kodo eilutė: Filename = Dir (). Jis priskiria kitą „Excel“ failo pavadinimą kintamajam „Filename“ ir ciklas prasideda iš naujo.
  • Kai visi failai yra uždengti, funkcija DIR grąžina tuščią eilutę, kai ciklas baigiasi.

Čia pateikiamas DIR funkcijos MSDN bibliotekoje paaiškinimas:

Rež grąžina pirmąjį failo pavadinimą, atitinkantį kelio pavadinimą. Norėdami gauti papildomų failų pavadinimų, atitinkančių kelio pavadinimą, skambinkite Rež vėl be argumentų. Kai daugiau failų pavadinimai nesutampa, Rež grąžina nulinio ilgio eilutę („“).

Ar kada nors bandėte ką nors panašaus naudodami VBA? Pasidalykite tuo, ką padarėte, ir mes visi galime iš to pasimokyti.

Sutaupykite beprotiškai daug laiko naudodami VBA. Patikrinkite Excel VBA KURSAS.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave