/ / Import Sheets az Excel VBA használatával

Importálási táblázatok Excel VBA használatával

Az alábbiakban egy programot nézünk be Excel VBA hogy más Excel fájlokból egy Excel fájlt importál.

Töltse le a Book1.xls, Book2.xls könyvtárat és vegye fel őket "C: tesztelésre"

Helyzet:

Importálási táblázatok Excel VBA használatával

Adja hozzá a következő kódsorokat a parancsgombhoz:

1. Először két típusú String-et, egy munkalap-objektumot és egy egész típusú változót deklarálunk.

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

2. Kapcsolja ki a képernyő frissítését és jelezze a figyelmeztetéseket.

Application.ScreenUpdating = False
Application.DisplayAlerts = False

3. Indítsa el a változó könyvtárat. A Dir funkcióval megtaláljuk az első * .xl-et? az ebben a könyvtárban tárolt fájl.

directory = "c:test"
fileName = Dir(directory & "*.xl??")

Megjegyzés: A Dir függvény támogatja a több karakter (*) és az egy karakteres (?) Karakterkészletek használatát az összes Excel-fájl különböző típusainak kereséséhez.

4. A fileName változó megtartja a könyvtárban található első Excel fájl nevét. Add Do While Loop-t.

Do While fileName <> ""

Loop

Adja hozzá a következő kódsorokat (5, 6, 7 és 8) a hurokhoz.

5. A munkalapok zárt Excel fájlokból történő másolásának egyszerű módja nincs. Ezért megnyitjuk az Excel fájlt.

Workbooks.Open (directory & fileName)

6. Importálja a lapokat az Excel fájlból az import-sheet.xls fájlba.

For Each sheet In Workbooks(fileName).Worksheets
    total = Workbooks("import-sheets.xls").Worksheets.count
    Workbooks(fileName).Worksheets(sheet.Name).Copy _
    after:=Workbooks("import-sheets.xls").Worksheets(total)
Next sheet

Magyarázat: a változó összértéke nyomon követi az import-sheet.xls munkalapok teljes számát. A Munkalap objektum másolási módját az egyes munkalapok másolására használjuk, és beillesztjük az import-sheets.xls utolsó munkalapja után.

7. Zárja be az Excel fájlt.

Workbooks(fileName).Close

8. A Dir funkció egy speciális funkció. Ahhoz, hogy a többi Excel-fájlt megkaphassa, a Dir-funkciót újra felhasználhatja argumentumok nélkül.

fileName = Dir()

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éppen az Excel VBA kilép a Do While hurokból.

9. Kapcsolja be a képernyő frissítését és riasztások megjelenítését (a hurokon kívül).

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10. Vizsgálja meg a programot.

Eredmény:

Import lapok eredménye

Szintén olvasható: