Excel VBA za kopiranje podatkov iz drugega delovnega zvezka brez odpiranja

  • Deliti To
Hugh West

Na spletnem mestu Microsoft Excel , Makri VBA lahko enostavno rešimo številne težave. Če želimo kopirati podatke iz drugega delovnega zvezka, ne da bi ga odprli, lahko to enostavno storimo z uporabo Excel VBA . V tem članku boste izvedeli Excel VBA za kopiranje podatkov iz drugega delovnega zvezka, ne da bi ga odprli.

Prenesi delovni zvezek za prakso

Prenesete lahko delovni zvezek in vadite z njimi.

Kopiranje podatkov drugega delovnega zvezka Data.xlsm

3 različni načini kopiranja podatkov iz drugega delovnega zvezka brez odpiranja s programom Excel VBA

Včasih potrebujemo podatke iz prejšnjega delovnega zvezka. Če se nam mudi in podatke potrebujemo takoj, ne da bi odprli delovni zvezek, lahko uporabimo ukaz Excel VBA Z Excelovim programom VBA lahko hitro kopiramo podatke iz drugih delovnih zvezkov, za kar moramo poznati le lokacijo določenega delovnega zvezka.

Za kopiranje podatkov bomo uporabili ime delovnega zvezka Podrobnosti o izdelku In želimo kopirati podatkovno območje ( B4:E10 ). Nabor podatkov, ki ga želimo kopirati, vsebuje nekaj izdelkov, njihove prodajne cene, stroške blaga in bruto profitne marže. Oglejmo si različna merila za kopiranje podatkov iz drugega delovnega zvezka.

1. Kopiranje podatkov iz drugega delovnega zvezka brez odpiranja s programom Excel VBA

Podatke iz lista lahko kopiramo tako, da sledimo ukazu VBA V ta namen je treba opraviti naslednje korake.

KORAKI:

  • Najprej pojdite v Razvijalec z zavihka v traku.
  • Nato kliknite na Visual Basic da odprete Urejevalnik Visual Basic .
  • Drug način za odprtje Urejevalnik Visual Basic je preprosto pritisniti Alt + F11 .

  • Ali pa z desno tipko miške kliknite list in izberite Prikaži kodo .

  • Zdaj zapišite Koda VBA spodaj.

Koda VBA:

 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 SubKonec s Konec podmene 
  • Na koncu zaženite kodo s klikom na Run Sub pa pritisnite bližnjico na tipkovnici F5 za zagon kode.

OPOMBA: Kode vam ni treba spreminjati. Samo kopirajte in prilepite kodo.

  • Z zagonom kode Odpiranje datotek v računalniku se prikaže okno.
  • Nato kliknite delovni zvezek, v katerem želite zbirati podatke.
  • Nato kliknite na V REDU gumb.

  • Zdaj izberite podatke iz izvorne datoteke tako, da povlečete območje B5:E10 in nato kliknite V REDU .

  • Po izbiri podatkovnega območja izberite ciljno območje, kamor želite vnesti podatke.
  • In kliknite V REDU .

  • Na koncu se zapre izvorna datoteka in podatki se kopirajo v ciljno datoteko.

Preberite več: Excel VBA: Kopiranje območja v drugo delovno knjižico

Podobna branja

  • Kako prilepiti iz odložišča v Excel z uporabo VBA
  • Onemogočite kopiranje in lepljenje v Excelu brez makrov (z 2 merili)
  • Kako kopirati izključitev skritih vrstic v Excelu (4 preproste metode)
  • Excel VBA za kopiranje vrstic v drug delovni list na podlagi meril
  • Kako uporabiti VBA za prilepitev samo vrednosti brez oblikovanja v Excelu

2. VBA za kopiranje podatkovnega območja iz drugega delovnega zvezka brez odpiranja v Excelu

Z uporabo VBA s spodnjo kodo lahko kopiramo podatke iz podatkovnega območja. Da bi to dosegli, moramo slediti spodnjim korakom.

KORAKI:

  • Če želite začeti, pojdite v Razvijalec na traku.
  • Drugič, odprite Urejevalnik Visual Basic s klikom na Visual Basic ali s pritiskom na Alt + F11 .
  • Lahko pa preprosto desno kliknete na list in izberete Prikaži kodo da odprete Urejevalnik Visual Basic .

  • Nato zapišite Koda VBA tam.

Koda VBA:

 Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") "kam postaviti kopirane podatke. rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub 
  • Tukaj zaženite kodo z uporabo Spustite Pod ali pritisnite bližnjico na tipkovnici F5 za zagon kode.

OPOMBA: Kode vam ni treba spreminjati, vse, kar morate storiti, je, da spremenite obseg glede na izvorne podatke.

  • In končno, podatki so zdaj kopirani iz drugega delovnega zvezka v aktivni delovni zvezek.

Preberite več: Makrokopiranje in lepljenje iz enega delovnega lista v drugega (15 metod)

3. Excel VBA za kopiranje podatkov iz drugega delovnega zvezka brez odpiranja z uporabo ukaznega gumba

Podatke iz drugega delovnega zvezka lahko kopiramo z ukaznim gumbom na VBA kodo. To lahko storimo po korakih, opisanih v nadaljevanju.

KORAKI:

  • Prvič, da bi postavili Gumb za ukaze , pojdite na Razvijalec zavihek.
  • Drugič, kliknite na Vstavite spustni meni.
  • Tretjič, kliknite na Gumb za ukaze .

  • Postavili smo Izdelek na celici A1 , saj je to naše ime lista izvorne datoteke. In nastavimo Ukazni gumb , na desni strani imena lista izvorne datoteke. Zdaj smo ustvarili tabelo, potrebujemo le še podatke, ki so v drugem delovnem zvezku.

  • Prav tako se pomaknite v Razvijalec na traku.
  • Nato kliknite na Visual Basic ali pritisnite Alt + F11 da zaženete Urejevalnik Visual Basic .
  • Odprete lahko tudi Urejevalnik Visual Basic z desnim klikom na list in izbiro Prikaži kodo .

  • Zdaj napišite VBA kodo navzdol.

Koda VBA:

 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 
  • Nato kodo shranite tako, da pritisnete Ctrl + S .

OPOMBA: Kodo lahko kopirate, spremeniti morate le pot do datoteke in območje podatkov.

  • In če kliknete na CommandButton1 s tem boste kopirali podatke iz drugega delovnega zvezka, ne da bi ga odprli.

Preberite več: Makro za kopiranje podatkov iz ene delovne knjige v drugo na podlagi meril

Zaključek

Zgornja merila so smernice za kopiranje podatkov iz drugega delovnega zvezka, ne da bi ga odprli z Excel VBA Če imate kakršnakoli vprašanja, predloge ali povratne informacije, nam to sporočite v razdelku za komentarje. Lahko pa si ogledate tudi naše druge članke v ExcelWIKI.com blog!

Hugh West je zelo izkušen trener Excela in analitik z več kot 10-letnimi izkušnjami v industriji. Po izobrazbi je diplomirani računovodstvo in finance ter magisterij poslovne administracije. Hugh ima strast do poučevanja in je razvil edinstven pristop k poučevanju, ki ga je enostavno slediti in razumeti. Njegovo strokovno znanje o Excelu je pomagalo na tisoče študentom in strokovnjakom po vsem svetu, da so izboljšali svoje sposobnosti in se izkazali v karieri. Prek svojega bloga Hugh deli svoje znanje s svetom, ponuja brezplačne vadnice za Excel in spletno usposabljanje, ki posameznikom in podjetjem pomaga doseči njihov polni potencial.