Hoe meerdere excel-werkmappen combineren met vba?
Om meerdere Excel-werkmappen te combineren, moet u een code gebruiken waarmee u kunt kiezen welke bestanden u wilt combineren, of u kunt naar een bepaalde padlocatie verwijzen en alle Excel-bestanden in de huidige werkmap combineren.
VBA combineert meerdere werkmappen
U kunt de volgende code gebruiken die de locatie gebruikt die ik heb genoemd in de padvariabele (een map op mijn systeembureaublad).
Dim Path As String Dim Filename As String Dim Sheet As Worksheet Path = "C:UsersDellDesktopsample-data" Filename = Dir(Path & "*.xlsx") Do While Filename <> "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop
Stappen om Excel-bestanden te combineren met VBA
- Open de Visual Basic Editor (zorg ervoor dat u het tabblad Ontwikkelaars inschakelt als u dit al op het lint hebt staan).
- Zoek daarna de huidige werkmap vanuit het projectvenster (control + r) en plaats er een nieuwe module in.
- U krijgt een codevenster in de module (dubbelklik erop) waar u de code die u heeft moet plakken (zoals deze is).
- Vanaf hier moet u de waarde van de padvariabele wijzigen met de maplocatie waar alle Excel-bestanden die u wilt combineren zich bevinden.
- Voer aan het einde de code uit en u krijgt alle werkbladen in de werkmap in het huidige bestand.
Handige links: Een macro uitvoeren – Macrorecorder – Visual Basic Editor – Handboek voor persoonlijke macro’s
Deze code opent elk bestand één voor één en kopieert elk werkblad één voor één en plakt het in het huidige bestand met dezelfde naam. Hier is dezelfde code, maar waarbij het scherm in het begin wordt bijgewerkt naar false om alles aan de backend uit te voeren.
Dim Path As String Dim Filename As String Dim Sheet As Worksheet Application.ScreenUpdating = False Path = "C:UsersDellDesktopsample-data" Filename = Dir(Path & "*.xlsx") Do While Filename <> "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop Application.ScreenUpdating = True End Sub
Opmerking: als u wilt leren hoe u gegevens uit meerdere werkmappen in één tabel kunt combineren, lees dan zeker deze handleiding.