/ / Importer ark ved hjelp av Excel VBA

Importer ark ved hjelp av Excel VBA

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

Last ned Book1.xls, Book2.xls og legg dem til "C: test"

Situasjon:

Importer ark ved hjelp av Excel VBA

Legg til følgende kodelinjer på kommandoknappen:

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

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

2. Slå av skjermoppdatering og vise varsler.

Application.ScreenUpdating = False
Application.DisplayAlerts = False

3. Initialiser den variable katalogen. Vi bruker Dir-funksjonen for å finne den første * .xl ?? filen lagret i denne katalogen.

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

Merk: Dir-funksjonen støtter bruk av flere tegn (*) og enkelt tegn (?) Jokertegn for å søke etter alle forskjellige Excel-filer.

4. Den variable filnavnet inneholder nå navnet på den første Excel-filen som finnes i katalogen. Legg til en Do While Loop.

Do While fileName <> ""

Loop

Legg til følgende kodelinjer (ved 5, 6, 7 og 8) til løkken.

5. Det er ingen enkel måte å kopiere regneark fra lukkede Excel-filer på. Derfor åpner vi Excel-filen.

Workbooks.Open (directory & fileName)

6. Importer 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: variabelen totalt holder oversikt over det totale antall regneark på import-sheet.xls. Vi bruker kopieringsmetoden til regnearkobjektet for å kopiere hvert regneark og lime det inn etter det siste regnearket for import-sheets.xls.

7. Lukk Excel-filen.

Workbooks(fileName).Close

8. Dir-funksjonen er en spesialfunksjon. For å få de andre Excel-filene, kan du bruke Dir-funksjonen igjen uten argumenter.

fileName = Dir()

Merk: Når ikke flere filnavn matcher, returnerer Dir-funksjonen en nulllengdesnor (""). Som et resultat vil Excel VBA forlate Do While-sløyfen.

9. Slå på skjermoppdatering og vise varsler igjen (utenfor sløyfen).

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10. Test programmet.

Resultat:

Importer arkresultat

Les også: