/ / Import Sheets met Excel VBA

Importeer vellen met Excel VBA

Hieronder zullen we een programma bekijken in Excel VBA dat importeert vellen uit andere Excel-bestanden in één Excel-bestand.

Download Book1.xls, Book2.xls en voeg ze toe aan "C: test"

Situatie:

Importeer vellen met Excel VBA

Voeg de volgende coderegels toe aan de opdrachtknop:

1. Eerst declareren we twee variabelen van het type String, een werkbladobject en een variabele van het type Integer.

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

2. Schakel het updaten van het scherm uit en toon waarschuwingen.

Application.ScreenUpdating = False
Application.DisplayAlerts = False

3. Initialiseer de variabele map. We gebruiken de functie Dir om de eerste * .xl ?? te vinden bestand opgeslagen in deze map.

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

Opmerking: de functie Dir ondersteunt het gebruik van jokertekens met meerdere tekens (*) en enkele tekens (?) Om naar alle verschillende typen Excel-bestanden te zoeken.

4. De variabele bestandsnaam bevat nu de naam van het eerste Excel-bestand in de map. Voeg een Do While Loop toe.

Do While fileName <> ""

Loop

Voeg de volgende coderegels (op 5, 6, 7 en 8) toe aan de lus.

5. Er is geen eenvoudige manier om werkbladen vanuit gesloten Excel-bestanden te kopiëren. Daarom openen we het Excel-bestand.

Workbooks.Open (directory & fileName)

6. Importeer de werkbladen uit het Excel-bestand in 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

Uitleg: het variabele totaal bevat het totale aantal werkbladen van import-sheet.xls. We gebruiken de methode Kopiëren van het werkbladobject om elk werkblad te kopiëren en te plakken na het laatste werkblad van import-sheets.xls.

7. Sluit het Excel-bestand.

Workbooks(fileName).Close

8. De Dir-functie is een speciale functie. Om de andere Excel-bestanden te krijgen, kunt u de functie Dir opnieuw gebruiken zonder argumenten.

fileName = Dir()

Opmerking: wanneer geen bestandsnamen meer overeenkomen, geeft de functie Dir een tekenreeks met de lengte nul (""). Als gevolg hiervan verlaat Excel VBA de Do While-lus.

9. Schakel het updaten van het scherm in en toon waarschuwingen opnieuw (buiten de lus).

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10. Test het programma.

Resultaat:

Importeerbladen Resultaat

Lees ook: