Vba: gegevens uit een andere werkmap extraheren
U kunt de volgende syntaxis in VBA gebruiken om gegevens uit een andere werkmap te extraheren:
SubExtractData ()
'turn off screen updates to make this run faster
Application.ScreenUpdating = False
'specify workbook we want to extract data from
Set wb = Workbooks.Open(" C:\Users\bobbi\OneDrive\Desktop\my_data.xlsx ")
'extract all data from Sheet1 and paste as new sheet in current workbook
wb.Sheets(" Sheet1 ").Copy After:=ThisWorkbook.Sheets(1)
'do not save any changes to workbook we extract data from
wb.Close SaveChanges:=False
'turn screen updating back on
Application.ScreenUpdating = True
End Sub
Deze specifieke macro opent de werkmap met de naam my_data.xlsx , die zich op de volgende locatie bevindt:
C:\Gebruikers\Bob\Desktop\mijn_data.xlsx
Vervolgens kopieert het alle gegevens van het blad met de naam Blad1 naar deze werkmap en kopieert het naar het blad direct na het eerste blad in onze momenteel actieve werkmap.
Opmerking : de regel Application.ScreenUpdating = False vertelt VBA om dit proces op de achtergrond uit te voeren, zodat het sneller werkt.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: extraheer gegevens uit een andere werkmap met VBA
Laten we zeggen dat we de volgende Excel-werkmap open hebben en deze bekijken:
Stel nu dat we een andere werkmap gesloten hebben, maar die de volgende gegevens bevat:
We kunnen de volgende macro gebruiken om de gegevens uit blad 1 van deze gesloten werkmap te extraheren en deze direct in een nieuw blad te plakken na het eerste blad van onze momenteel geopende werkmap:
SubExtractData ()
'turn off screen updates to make this run faster
Application.ScreenUpdating = False
'specify workbook we want to extract data from
Set wb = Workbooks.Open(" C:\Users\bobbi\OneDrive\Desktop\my_data.xlsx ")
'extract all data from Sheet1 and paste as new sheet in current workbook
wb.Sheets(" Sheet1 ").Copy After:=ThisWorkbook.Sheets(1)
'do not save any changes to workbook we extract data from
wb.Close SaveChanges:=False
'turn screen updating back on
Application.ScreenUpdating = True
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Houd er rekening mee dat de gegevens uit de gesloten werkmap zijn geëxtraheerd en als een nieuw blad in onze momenteel actieve werkmap zijn geplakt.
Voel je vrij om het nieuwe blad een andere naam te geven, omdat het identiek is aan het huidige blad.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: het aantal vellen in een werkmap tellen
VBA: hoe u meerdere kolommen invoegt
VBA: hoe u meerdere regels invoegt