Bladen importeren met Excel VBA - Eenvoudige Excel-macro's

Inhoudsopgave

Hieronder zullen we kijken naar een programma in Excel VBA Dat importeert werkbladen uit andere Excel-bestanden in één Excel-bestand.

Download Book4.xlsx, Book5.xlsx en voeg ze toe aan "C:\test\"

Situatie:

Voeg de volgende coderegels toe aan de opdrachtknop:

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

Dim directory als string, bestandsnaam als string, blad als werkblad, totaal als geheel getal

2. Schakel het bijwerken van het scherm en het weergeven van waarschuwingen uit.

Application.ScreenUpdating = False
Application.DisplayAlerts = False

3. Initialiseer de variabele directory. We gebruiken de Dir-functie om de eerste *.xl?? bestand dat in deze map is opgeslagen.

directory = "c:\test\"
bestandsnaam = map (map & "*.xl??")

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

4. De variabele bestandsnaam bevat nu de naam van het eerste Excel-bestand dat in de directory is gevonden. Voeg een Do While-lus toe.

Doen terwijl bestandsnaam ""
Lus

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

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

Workbooks.Open (map & bestandsnaam)

6. Importeer de werkbladen uit het Excel-bestand in import-sheet.xlsm.

Voor elk blad in werkmappen (bestandsnaam). Werkbladen
totaal = Werkmappen("import-sheets.xlsm").Worksheets.count
Werkmappen(bestandsnaam).Werkbladen(blad.naam).Kopieer _
after:=Werkboeken("import-sheets.xlsm").Werkbladen (totaal)
Volgende blad

Toelichting: de variabele totaal houdt het totaal aantal werkbladen van import-sheet.xlsm bij. We gebruiken de kopieermethode van het werkbladobject om elk werkblad te kopiëren en te plakken na het laatste werkblad van import-sheets.xlsm.

7. Sluit het Excel-bestand.

Werkmappen (bestandsnaam).Sluiten

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

bestandsnaam = map()

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

9. Schakel het bijwerken van het scherm en het weergeven van waarschuwingen weer in (buiten de lus).

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10. Test het programma.

Resultaat:

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave