/ / Importo lapai naudojant "Excel VBA"

Importuoti lapus naudodami "Excel VBA"

Žemiau apžvelgsime programą Excel VBA tai importo lapus iš kitų "Excel" failų į vieną "Excel" failą.

Atsisiųskite Book1.xls, Book2.xls ir pridėkite juos prie "C: test"

Padėtis:

Importuoti lapus naudodami "Excel VBA"

Į komandų mygtuką pridėkite šias kodo eilutes:

1. Pirma, deklaruojame du kintamuosius tipo "String", "Worksheet" objekto ir vieno kintamojo tipo "Integer".

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

2. Išjunkite ekrano atnaujinimą ir įspėjimų rodymą.

Application.ScreenUpdating = False
Application.DisplayAlerts = False

3. Inicijuoti kintamojo katalogą. Mes naudojame Dir funkciją, norėdami rasti pirmąjį * .xl ?? failas, saugomas šiame kataloge.

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

Pastaba: "Dir" funkcija palaiko daugialypių simbolių (*) ir vienos ženklų (?) Pakaitos simbolių naudojimą ieškant visų skirtingų tipų "Excel" failų.

4. Kintamasis fileName dabar saugo pirmojo "Excel" failo pavadinimą, esantį kataloge. Pridėkite "Do Loop".

Do While fileName <> ""

Loop

Įtraukite šias kodo eilutes (5, 6, 7 ir 8) į kilpą.

5. Nėra paprasto būdo kopijuoti darbalapius iš uždarytų "Excel" failų. Todėl atidarome "Excel" failą.

Workbooks.Open (directory & fileName)

6. Importuokite lapus iš "Excel" failo į import-sheet.xls.

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

Paaiškinimas: iš viso kintamasis seka bendrą skaičių darbalapių importo-sheet.xls. Mes naudojame "Worksheet" objekto kopijavimo metodą, norėdami kopijuoti kiekvieną darbalapį ir įklijuoti jį po paskutinio import-sheets.xls lapo.

7. Uždarykite "Excel" failą.

Workbooks(fileName).Close

8. Dir funkcija yra speciali funkcija. Norėdami gauti kitus "Excel" failus, vėl galite naudoti funkciją "Dir" be jokių argumentų.

fileName = Dir()

Pastaba: kai failų pavadinimai neatitinka, funkcija Dir grąžina nulio ilgio eilutę (""). Dėl to "Excel VBA" išeis iš "Do While" kilpos.

9. Įjunkite ekrano atnaujinimą ir perspėjimų rodymą (už loopo ribų).

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10. Patikrinkite programą.

Rezultatas:

Importuotų lapelių rezultatas

Taip pat perskaitykite: