Excel VBA til at kopiere data fra en anden projektmappe uden at åbne

  • Del Dette
Hugh West

Microsoft Excel , VBA-makroer kan nemt løse en lang række problemer. Hvis vi ønsker at kopiere data fra en anden projektmappe uden at åbne projektmappen, kan vi nemt gøre det ved at bruge Excel VBA . I denne artikel vil du lære Excel VBA til at kopiere data fra en anden projektmappe uden at åbne den.

Download arbejdsbog til øvelser

Du kan downloade arbejdsbogen og øve dig med dem.

Kopier en anden projektmappe Data.xlsm

3 forskellige måder at kopiere data fra en anden projektmappe uden at åbne med Excel VBA

Nogle gange har vi brug for data fra en tidligere projektmappe. Hvis vi har travlt og har brug for dataene med det samme uden at åbne projektmappen, kan vi bruge Excel VBA Med Excel VBA kan vi hurtigt kopiere data fra andre arbejdsbøger, og til dette skal vi blot kende placeringen af den pågældende arbejdsbog.

For at kopiere dataene skal vi bruge arbejdsbogens navn Produkt_detaljer Og vi ønsker at kopiere dataområdet ( B4:E10 ). Det datasæt, vi vil kopiere, indeholder nogle produkter, deres salgspris, vareomkostninger og bruttofortjenestemarginaler. Lad os se på forskellige kriterier for at kopiere data fra en anden projektmappe.

1. Kopier et arkdata fra en anden projektmappe uden at åbne med Excel VBA

Vi kan kopiere data fra et ark ved at følge VBA Vi skal gennemgå nedenstående trin for at gøre dette.

TRIN:

  • Først skal du gå til Udvikler fanen fra farvebåndet.
  • Derefter skal du klikke på Visual Basic for at åbne den Visual Basic-editor .
  • En anden måde at åbne den Visual Basic-editor er blot at trykke på Alt + F11 .

  • Eller højreklik på arket, og vælg derefter Se kode .

  • Skriv nu ned den VBA-kode nedenfor.

VBA-kode:

 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 
  • Til sidst skal du køre koden ved at klikke på Kør under knappen, på den anden side, skal du trykke på tastaturgenvejen F5 for at køre koden.

BEMÆRK: Du behøver ikke at ændre koden. Du skal blot kopiere og indsætte koden.

  • Ved at køre koden Filåbning vinduet vises fra din computer.
  • Klik derefter på den projektmappe, du vil indsamle data.
  • Klik derefter på OK knap.

  • Vælg nu dataene fra kildefilen ved at trække dem over området B5:E10 og klik derefter på OK .

  • Når du har valgt dataområdet, skal du nu vælge det destinationsområde, hvor du vil placere dataene.
  • Og klik på OK .

  • Til sidst lukker dette kildefilen, og dataene kopieres til destinationsfilen.

Læs mere: Excel VBA: Kopier område til en anden projektmappe

Lignende læsninger

  • Sådan indsættes fra udklipsholder til Excel ved hjælp af VBA
  • Deaktiver kopiering og indsættelse i Excel uden makroer (med 2 kriterier)
  • Sådan kopierer du undtagelsesvis skjulte rækker i Excel (4 nemme metoder)
  • Excel VBA til at kopiere rækker til et andet regneark baseret på kriterier
  • Sådan bruges VBA til kun at indsætte værdier uden formatering i Excel

2. VBA til at kopiere et dataramme fra en anden arbejdsbog uden at åbne i Excel

Ved at bruge den VBA koden nedenfor kan vi kopiere data fra et dataramme. Vi skal følge nedenstående trin for at opnå dette.

TRIN:

  • For at begynde skal du navigere til Udvikler på fanen på farvebåndet.
  • For det andet skal du åbne den Visual Basic-editor ved at klikke på Visual Basic eller ved at trykke på Alt + F11 .
  • Eller du kan også bare højreklikke på arket og vælge Se kode for at åbne den Visual Basic-editor .

  • Derefter skal du notere den VBA-kode der.

VBA-kode:

 Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") 'hvor de kopierede data skal placeres. rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub 
  • Her skal du køre koden ved hjælp af Kør Under eller tryk på tastaturgenvejen F5 for at køre koden.

BEMÆRK: Du behøver ikke at ændre koden, du skal blot ændre intervallet i overensstemmelse med dine kildedata.

  • Og endelig kopieres dataene nu fra en anden projektmappe til den aktive projektmappe.

Læs mere: Makro til at kopiere og indsætte fra et regneark til et andet (15 metoder)

3. Excel VBA til at kopiere data fra en anden projektmappe uden at åbne ved hjælp af kommandoknappen

Vi kan kopiere data fra en anden projektmappe ved at bruge kommandoknappen på VBA For at opnå dette skal vi følge nedenstående trin.

TRIN:

  • For det første, for at sætte en Kommandoknap , gå til Udvikler fanebladet.
  • For det andet skal du klikke på Indsæt drop-down-menuen.
  • For det tredje skal du klikke på Kommandoknap .

  • Vi sætter den Produkt på celle A1 , da det er navnet på vores kildefilark. Og vi indstiller Kommandoknap , til højre for arknavnet i kildefilen. Vi har oprettet tabellen nu, vi skal bare bruge dataene, som er i en anden projektmappe.

  • På samme måde kan du navigere til Udvikler på fanen på farvebåndet.
  • Klik derefter på Visual Basic eller tryk på Alt + F11 for at starte Visual Basic-editor .
  • Du kan også åbne den Visual Basic-editor ved at højreklikke på arket og vælge Se kode .

  • Skriv nu den VBA kode ned.

VBA-kode:

 Private Sub CommandButton1_Click() Dim sourceworkbook As Workbook Dim currentworkbook As Workbook Sæt currentworkbook = ThisWorkbook Sæt 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 
  • Derefter skal du gemme koden ved at trykke på Ctrl + S .

BEMÆRK: Du kan kopiere koden, du skal blot ændre filstien og dataområdet.

  • Og endelig, hvis du klikker på CommandButton1 Dette kopierer data fra en anden projektmappe uden at åbne den.

Læs mere: Makro til at kopiere data fra en projektmappe til en anden baseret på kriterier

Konklusion

Ovenstående kriterier er retningslinjer for at kopiere data fra en anden projektmappe uden at åbne den med Excel VBA Jeg håber, at dette vil hjælpe dig! Hvis du har spørgsmål, forslag eller feedback, så lad os vide det i kommentarfeltet. Du kan også kigge på vores andre artikler i ExcelWIKI.com blog!

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.