/ / Import Sheets ved hjælp af Excel VBA

Importer ark ved hjælp af Excel VBA

Nedenfor vil vi se på et program i Excel VBA at importerer ark fra andre Excel-filer til en Excel-fil.

Download Book1.xls, Book2.xls og tilføj dem til "C: test"

Situation:

Importer ark ved hjælp af Excel VBA

Tilføj følgende kodelinjer til kommandoknappen:

1. Først erklærer vi to variabler af typen String, et regnearkobjekt og en variabel af typen Integer.

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

2. Sluk for opdatering af skærm og visning af advarsler.

Application.ScreenUpdating = False
Application.DisplayAlerts = False

3. Initialiser den variable katalog. Vi bruger Dir-funktionen til at finde den første * .xl ?? fil gemt i denne mappe.

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

Bemærk: Dir-funktionen understøtter brugen af ​​jokertegn med flere tegn (*) og enkelt tegn (?) For at søge efter alle forskellige typer Excel-filer.

4. Den variable filnavn indeholder nu navnet på den første Excel-fil, der findes i mappen. Tilføj en Do While Loop.

Do While fileName <> ""

Loop

Tilføj følgende kodelinjer (ved 5, 6, 7 og 8) til sløjfen.

5. Der er ingen enkel måde at kopiere regneark fra lukkede Excel-filer på. Derfor åbner vi Excel-filen.

Workbooks.Open (directory & fileName)

6. Import arkene fra Excel-filen til 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

Forklaring: den variable sum holder oversigt over det samlede antal regneark i import-sheet.xls. Vi bruger kopimetoden til regnearkobjektet til at kopiere hvert regneark og indsætte det efter det sidste regneark på import-sheets.xls.

7. Luk Excel-filen.

Workbooks(fileName).Close

8. Dir-funktionen er en speciel funktion. For at få de andre Excel-filer, kan du bruge Dir-funktionen igen uden argumenter.

fileName = Dir()

Bemærk: Når der ikke matches flere filnavne, returnerer funktionen Dir en nullængdesnor (""). Som et resultat vil Excel VBA forlade Do While loop.

9. Tænd for skærmopdatering og vis alarmer igen (uden for sløjfen).

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10. Test programmet.

Resultat:

Importer arkresultat

Læs også: