Excel VBA om gegevens uit een andere werkmap te kopiëren zonder deze te openen

  • Deel Dit
Hugh West

In Microsoft Excel , VBA-macro's kan gemakkelijk een groot aantal problemen oplossen. Als we gegevens uit een andere werkmap willen kopiëren zonder de werkmap te openen, kunnen we dat gemakkelijk doen door gebruik te maken van Excel VBA In dit artikel leer je Excel VBA om gegevens uit een andere werkmap te kopiëren zonder deze te openen.

Download Praktijk Werkboek

Je kunt het werkboek downloaden en ermee oefenen.

Gegevens van een andere werkmap kopiëren.xlsm

3 Verschillende manieren om gegevens uit een andere werkmap te kopiëren zonder deze te openen met Excel VBA

Soms hebben we gegevens nodig uit een eerdere werkmap. Als we haast hebben en de gegevens onmiddellijk nodig hebben zonder de werkmap te openen, kunnen we de optie Excel VBA Met Excel VBA kunnen we snel gegevens uit andere werkmappen kopiëren. Hiervoor hoeven we alleen maar de locatie van die specifieke werkmap te weten.

Om de gegevens te kopiëren gebruiken we de werkmapnaam Productgegevens En we willen het gegevensbereik ( B4:E10 ). De dataset die we willen kopiëren bevat enkele producten, hun verkoopprijs, kostprijs van goederen en brutowinstmarges. Laten we verschillende criteria bekijken om gegevens uit een andere werkmap te kopiëren.

1. Kopieer bladgegevens uit een andere werkmap zonder deze te openen met Excel VBA

We kunnen gegevens uit een blad kopiëren door de VBA code hieronder. Hiervoor moeten we de onderstaande stappen doorlopen.

STAPPEN:

  • Ga eerst naar de Ontwikkelaar tabblad van het lint.
  • Klik daarna op Visual Basic om de Visual Basic-editor .
  • Een andere manier om de Visual Basic-editor is gewoon op Alt + F11 .

  • Of klik met de rechtermuisknop op het blad en selecteer dan Code bekijken .

  • Schrijf nu de VBA-code hieronder.

VBA-code:

 Sub Copy_Data_from_Another_Workbook() Dim wb As Workbook Dim newwb As Workbook Dim rn1 As Range Dim rn2 As Range Set wb = Application.ActiveWorkbook With Application.FileDialog(msoFileDialogOpen) .Filters.Clear .Filters.Add "Excel 2007-13", "*.xlsx; *.xlsm; *.xlsa" .AllowMultiSelect = False .Show If .SelectedItems.Count> 0 Then Application.Workbooks.Open.SelectedItems(1) Set newwb = Application.ActiveWorkbook Set rn1 = Application.InputBox(prompt:="Select Data Range", Default:="A1", Type:=8) wb.Activate Set rn2 = Application.InputBox(prompt:="Select Destination Range", Default:="A1", Type:=8) rn1.Copy rn2 rn2.CurrentRegion.EntireColumn.AutoFit newwb.Close False End If End With End SubEnd With End Sub 
  • Voer tenslotte de code uit door te klikken op de Run Sub knop, aan de andere kant, druk op de sneltoets F5 om de code uit te voeren.

OPMERKING: Je hoeft de code niet aan te passen. Kopieer en plak de code gewoon.

  • Door het uitvoeren van de code Bestand openen venster van uw computer verschijnt.
  • Klik daarna op de werkmap waarin u gegevens wilt verzamelen.
  • Klik vervolgens op de OK knop.

  • Selecteer nu de gegevens uit het bronbestand door over het bereik te slepen B5:E10 en klik dan op OK .

  • Na het selecteren van het gegevensbereik. Selecteer nu het bestemmingsbereik waar u de gegevens wilt plaatsen.
  • En, klik OK .

  • Uiteindelijk wordt het bronbestand gesloten en worden de gegevens gekopieerd naar het doelbestand.

Lees meer: Excel VBA: Bereik kopiëren naar een andere werkmap

Vergelijkbare lezingen

  • Plakken van klembord naar Excel met VBA
  • Kopiëren en plakken in Excel uitschakelen zonder macro's (met 2 criteria)
  • Hoe uitsluiting van verborgen rijen kopiëren in Excel (4 eenvoudige methoden)
  • Excel VBA om rijen naar een ander werkblad te kopiëren op basis van criteria
  • Hoe VBA gebruiken om alleen waarden te plakken zonder opmaak in Excel

2. VBA om een gegevensbereik uit een andere werkmap te kopiëren zonder deze in Excel te openen

Door de VBA onderstaande code kunnen we gegevens uit een gegevensbereik kopiëren. We moeten de onderstaande stappen volgen om dit te bereiken.

STAPPEN:

  • Navigeer om te beginnen naar de Ontwikkelaar tabblad op het lint.
  • Ten tweede, open de Visual Basic-editor door te klikken op Visual Basic of door te drukken op Alt + F11 .
  • Of klik met de rechtermuisknop op het blad en selecteer Code bekijken om de Visual Basic-editor .

  • Schrijf daarna de VBA-code daar.

VBA-code:

 Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") 'waar de gekopieerde gegevens moeten komen. rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub 
  • Voer hier de code uit met Ren Sub of druk op de sneltoets F5 om de code uit te voeren.

OPMERKING: U hoeft de code niet te wijzigen, u hoeft alleen het bereik aan te passen aan uw brongegevens.

  • En tenslotte worden de gegevens nu gekopieerd van een andere werkmap naar de actieve werkmap.

Lees meer: Macro voor kopiëren en plakken van het ene werkblad naar het andere (15 methoden)

3. Excel VBA om gegevens te kopiëren van een andere werkmap zonder te openen met behulp van Command Button

We kunnen gegevens uit een andere werkmap kopiëren door de opdrachtknop op het VBA code. Om dit te bereiken moeten we de onderstaande stappen volgen.

STAPPEN:

  • Ten eerste, om een Commandoknop ga naar de Ontwikkelaar tab.
  • Ten tweede, klik op de Plaats uitklapmenu.
  • Klik ten derde op de Commandoknop .

  • We zetten de Product op cel A1 want dat is de naam van ons bronbestand. En we stellen de Commandoknop We hebben nu de tabel gemaakt, we hebben alleen de gegevens nodig die in een andere werkmap staan.

  • Navigeer op dezelfde manier naar de Ontwikkelaar tabblad op het lint.
  • Klik vervolgens op Visual Basic of druk op Alt + F11 om de Visual Basic-editor .
  • U kunt ook de Visual Basic-editor door rechts te klikken op het blad en te kiezen voor Code bekijken .

  • Schrijf nu de VBA code naar beneden.

VBA-code:

 Private Sub CommandButton1_Click() Dim sourceworkbook As Workbook Dim currentworkbook As Workbook Set currentworkbook = ThisWorkbook Set sourceworkbook = Workbooks.Open("D:\Products_Details.xlsx") sourceworkbook.Worksheets("Product").Range("B5:E10").Copy currentworkbook.Activate currentworkbook.Worksheets("Sheet3").Activate currentworkbook.Worksheets("Sheet3").Cells(4, 1).Select ActiveSheet.PasteSourceworkbook.Close Set sourceworkbook = Nothing Set currentworkbook = Nothing ThisWorkbook.Activate Worksheets("Sheet3").Activate Worksheets("Sheet3").Range("A2").Select End Sub 
  • Sla vervolgens de code op door op Ctrl + S .

OPMERKING: U kunt de code kopiëren, u moet alleen het bestandspad en het gegevensbereik wijzigen.

  • En tot slot, als u op de Commandoknop1 dit kopieert de gegevens uit een andere werkmap zonder deze te openen.

Lees meer: Macro voor het kopiëren van gegevens van de ene werkmap naar de andere op basis van criteria

Conclusie

De bovenstaande criteria zijn richtlijnen om gegevens uit een andere werkmap te kopiëren zonder deze te openen met Excel VBA Hopelijk helpt dit u! Als u vragen, suggesties of feedback hebt, laat het ons dan weten in de commentaarsectie. Of u kunt een blik werpen op onze andere artikelen in de ExcelWIKI.com blog!

Hugh West is een zeer ervaren Excel-trainer en -analist met meer dan 10 jaar ervaring in de branche. Hij heeft een bachelor in Accounting en Finance en een master in Business Administration. Hugh heeft een passie voor lesgeven en heeft een unieke lesaanpak ontwikkeld die gemakkelijk te volgen en te begrijpen is. Zijn deskundige kennis van Excel heeft duizenden studenten en professionals over de hele wereld geholpen hun vaardigheden te verbeteren en uit te blinken in hun carrière. Via zijn blog deelt Hugh zijn kennis met de wereld en biedt hij gratis Excel-tutorials en online trainingen aan om individuen en bedrijven te helpen hun volledige potentieel te bereiken.