Több Excel fájl egyesítése egyetlen Excel munkafüzetbe

Hívott egy barátom, aki több Excel fájlt akart egyesíteni egy Excel munkafüzetbe. Sok fájl volt egy mappában, és az összes munkafüzet összes munkalapját egyetlen munkafüzetbe akarta helyezni.

Bár ez manuálisan is elvégezhető, időigényes és hibalehetőséget jelentene.

Egy egyszerű VBA -kód azonban ezt néhány másodperc alatt meg tudja tenni.

Több Excel fájlt egyesíthet egyetlen fájlba

Íme a kód, amely egy adott mappában több Excel -munkafüzetet egyetlen Excel -munkafüzetbe egyesíthet:

Sub ConslidateWorkbooks () 'Sumit Bansal készítette a https://trumpexcel.com webhelyen FolderPath & "*.xls*") Do while Filename "" Workbooks.Open Filename: = FolderPath & Filename, ReadOnly: = True For Sheet in ActiveWorkbook.Sheets Sheet.Copy After: = ThisWorkbook.Sheets (1) Következő munkalapok [Fájlnév]. Zárja be a Fájlnév = Dir () hurokalkalmazást. ScreenUpdating = True End Sub

Hogyan kell használni ezt a kódot?

Íme a kód használatának lépései:

  • Tegye az összes egyesíteni kívánt Excel fájlt egy mappába. Ennek az oktatóanyagnak a céljából létrehoztam egy Test nevű mappát, és hat fájl van benne (4 Excel munkafüzet, 1 PowerPoint és Word).
  • Nyisson meg egy új Excel munkafüzetet.
  • Nyomja meg az ALT + F11 billentyűkombinációt (vagy lépjen a Fejlesztő -> Kód -> Visual Basic menüpontra). Ezzel megnyílik a Visual Basic Editor.
  • A VB szerkesztőben, a Projektszerkesztőben kattintson a jobb gombbal a munkafüzet bármelyik objektumára, és lépjen a Beszúrás -> Modul menüpontra. Ezzel beilleszt egy modult a munkafüzetbe.
  • Kattintson duplán a modulra. Megnyitja a jobb oldali kódablakot.
  • Másolja ki és illessze be a fenti kódot a kódablakba.
  • A kódban a következő kód sort kell megváltoztatnia:
    FolderPath = Környezet ("userprofile") & "DesktopTest"

    Ebben a sorban változtassa meg a részt idézőjelek között (narancssárga színnel kiemelve) annak a mappának a helyével, amelyben a kombinálni kívánt fájlok vannak. A fent használt kódban a mappa az Asztalon található. Ha más helyen van, adja meg ezt az elérési utat.

  • Vigye a kurzort a kód tetszőleges pontjára, és kattintson a zöld lejátszás gombra az Eszköztár beállításaiban (vagy nyomja meg az F5 billentyűt).

Ez lefuttatja a kódot, és a mappa összes Excel -fájljának összes munkalapja egyetlen munkafüzetbe kerül.

Hogyan működik ez a kód?

  • A kód a DIR funkciót használja a fájlnevek lekéréséhez a megadott mappából.
  • A következő sor hozzárendeli az első excel fájlnevet a „Filename” változóhoz.
    Fájlnév = Irány (FolderPath & "*.xls*")
  • Ezután a Do Do ciklus segítségével ellenőrizheti, hogy minden fájl le van -e fedve.
  • A „Do Do” cikluson belül a „For Every” ciklus az összes munkalap másolására szolgál a munkafüzetbe, amelyben a kódot futtatjuk.
  • A Do Loop végén a következő kódsor használatos: Filename = Dir (). Hozzárendeli a következő Excel fájlnevet a Fájlnév változóhoz, és a ciklus újra kezdődik.
  • Amikor az összes fájl le van fedve, a DIR függvény üres karakterláncot ad vissza, amikor a ciklus véget ér.

Íme a DIR függvény magyarázata az MSDN könyvtárban:

Dir visszaadja az első fájlnevet, amely megegyezik az útvonalnévvel. Az útvonalnévnek megfelelő további fájlnevekért hívja a hívást Dir ismét érvek nélkül. Ha több fájlnév nem egyezik, Dir nulla hosszúságú karakterláncot („”) ad vissza.

Próbáltál már ilyesmit VBA használatával? Ossza meg, amit tett, és mindannyian tanulhatunk belőle.

Takarítson meg őrült időt a VBA használatával. Nézze meg a Excel VBA TANFOLYAM.

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave