Az alábbiakban megnézzük a programot Excel VBA hogy más Excel fájlokból importálja a lapokat egy Excel fájlba.
Töltse le a Book4.xlsx, Book5.xlsx fájlokat, és adja hozzá őket a "C: \ test \" mappához
Helyzet:
Adja hozzá a következő kódsorokat a parancsgombhoz:
1. Először deklarálunk két String típusú változót, egy Munkalap objektumot és egy Integer típusú változót.
Halvány könyvtár karakterláncként, fájlnév karakterláncként, munkalap munkalapként, teljes egészként
2. Kapcsolja ki a képernyőfrissítést és a figyelmeztetések megjelenítését.
Application.ScreenUpdating = Hamis
Application.DisplayAlerts = Hamis
3. Inicializálja a változó könyvtárat. A Dir függvény segítségével keressük meg az első *.xl ?? ebben a könyvtárban tárolt fájl.
könyvtár = "c: \ teszt \"
fileName = Dir (könyvtár és "*.xl ??")
Megjegyzés: A Dir funkció támogatja a több karakteres (*) és az egy karakteres (?) Helyettesítő karakterek használatát az Excel különböző fájljainak kereséséhez.
4. A fileName változó tartalmazza a könyvtárban található első Excel fájl nevét. Adjon hozzá egy cikket a ciklushoz.
Do while fájlnév ""
Hurok
Adja hozzá a következő kódsorokat (5, 6, 7 és 8) a hurokhoz.
5. Nincs egyszerű módja a munkalapok másolásának zárt Excel fájlokból. Ezért megnyitjuk az Excel fájlt.
Munkafüzetek. Nyissa meg (könyvtár és fájlnév)
6. Importálja a munkalapokat az Excel fájlból az import-sheet.xlsm fájlba.
A munkafüzetek minden lapjához (fájlnév). Munkalapok
összesen = Munkafüzetek ("import-sheet.xlsm"). Munkalapok.szám
Munkafüzetek (fileName). Munkalapok (sheet.Name). Másolat _
után: = Munkafüzetek ("import-sheet.xlsm"). Munkalapok (összesen)
Következő lap
Magyarázat: a total változó nyomon követi az import-sheet.xlsm munkalapok teljes számát. A Munkalap objektum Másolás módszerével másoljuk az egyes munkalapokat, és illesszük be az import-sheet.xlsm utolsó munkalapja után.
7. Zárja be az Excel fájlt.
Munkafüzetek (fájlnév). Bezárás
8. A Dir funkció egy speciális funkció. A többi Excel fájl beszerzéséhez ismét használhatja a Dir függvényt érvek nélkül.
fileName = Irányítás ()
Megjegyzés: Ha nincs több fájlnév, a Dir függvény nulla hosszúságú karakterláncot ("") ad vissza. Ennek eredményeként az Excel VBA kilép a Do Do ciklusból.
9. Kapcsolja be újra a képernyő frissítését és a riasztások megjelenítését (a cikluson kívül).
Application.ScreenUpdating = Igaz
Application.DisplayAlerts = Igaz
10. Tesztelje a programot.
Eredmény: