Exceli VBA andmete kopeerimiseks teisest töövihikust ilma avamata

  • Jaga Seda
Hugh West

Veebilehel Microsoft Excel , VBA makros saab hõlpsasti lahendada mitmesuguseid probleeme. Kui me tahame kopeerida andmeid teisest töövihikust ilma töövihikut avamata, saame seda hõlpsasti teha, kui kasutame funktsiooni Excel VBA Selles artiklis saate teada Excel VBA kopeerida andmeid teisest töövihikust ilma seda avamata.

Lae alla praktiline töövihik

Saate alla laadida töövihiku ja nendega harjutada.

Teise töövihiku andmete kopeerimine.xlsm

3 erinevat võimalust andmete kopeerimiseks teisest töövihikust ilma Exceli VBAga avamata

Mõnikord vajame andmeid mõnest eelmisest töövihikust. Kui meil on kiire ja me vajame andmeid kohe ilma töövihikut avamata, saame kasutada funktsiooni Excel VBA Excel VBA abil saame kiiresti kopeerida andmeid teistest töövihikutest, selleks peame lihtsalt teadma selle konkreetse töövihiku asukohta.

Andmete kopeerimiseks kasutame töövihiku nime Product_Details Ja me tahame kopeerida andmete vahemikku ( B4:E10 ). Andmekogum, mida me tahame kopeerida, sisaldab mõningaid tooteid, nende müügihinda, kauba maksumust ja brutokasumimarginaali. Vaatleme erinevaid kriteeriume, et kopeerida andmeid teisest töövihikust.

1. Lehe andmete kopeerimine teisest töövihikust ilma Exceli VBAga avamata

Me saame kopeerida andmeid lehest, järgides käsku VBA kood allpool. Selleks peame läbima alljärgnevad sammud.

SAMMUD:

  • Esiteks, minge Arendaja vahekaart lindilt.
  • Pärast seda klõpsake nuppu Visual Basic avada Visual Basic toimetaja .
  • Teine võimalus avada Visual Basic toimetaja on lihtsalt vajutada Alt + F11 .

  • Või tehke lehel paremklõps, seejärel valige Vaata koodi .

  • Nüüd kirjutage üles VBA kood allpool.

VBA kood:

 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 
  • Lõpuks käivitage kood, klõpsates Run Sub nuppu, teiselt poolt vajutage klaviatuuri otsetee F5 klahviga koodi käivitamiseks.

MÄRKUS: Te ei pea koodi muutma. Lihtsalt kopeerige ja kleepige kood.

  • Käivitades koodi Faili avamine aken ilmub teie arvutist.
  • Pärast seda klõpsake töövihikul, mille andmeid soovite koguda.
  • Seejärel klõpsake nuppu OK nupp.

  • Nüüd valige andmed lähtefailist, lohistades üle vahemiku B5:E10 ja seejärel klõpsake OK .

  • Pärast andmevahemiku valimist. Nüüd valige sihtvahemik, kuhu soovite andmed paigutada.
  • Ja, klõpsake OK .

  • Lõpuks suletakse lähtefail ja andmed kopeeritakse sihtfaili.

Loe edasi: Excel VBA: vahemiku kopeerimine teise töövihikusse

Sarnased lugemised

  • Kuidas kleepida lõikelauast Excelisse kasutades VBA-d
  • Kopeerimise ja kleepimise keelamine Excelis ilma makrota (2 kriteeriumiga)
  • Kuidas kopeerida Exceli varjatud ridade välistamine (4 lihtsat meetodit)
  • Exceli VBA ridade kopeerimiseks teisele töölehele kriteeriumide alusel
  • Kuidas kasutada VBA-d, et kleepida väärtusi ainult ilma vormindamiseta Excelis

2. VBA andmete vahemiku kopeerimiseks teisest töövihikust ilma Excelis avamata

Kasutades VBA koodiga saame kopeerida andmeid andmevahemikust. Selleks peame järgima alljärgnevaid samme.

SAMMUD:

  • Alustamiseks navigeerige veebilehele Arendaja vahekaart lindil.
  • Teiseks, avage Visual Basic toimetaja klõpsates Visual Basic või vajutades Alt + F11 .
  • Või lihtsalt tehke lehel paremklõps ja valige Vaata koodi avada Visual Basic toimetaja .

  • Pärast seda kirjutage üles VBA kood seal.

VBA kood:

 Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") 'kuhu panna kopeeritud andmed. rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub 
  • Siin käivitage kood, kasutades Käivita Sub või vajutage klahvikombinatsiooni F5 koodi käivitamiseks.

MÄRKUS: Te ei pea koodi muutma, kõik, mida peate tegema, on lihtsalt muuta vahemikku vastavalt teie lähteandmetele.

  • Ja lõpuks kopeeritakse andmed nüüd teisest töövihikust aktiivsesse töövihikusse.

Loe edasi: Makro ühest töölehest teise kopeerimiseks ja kleepimiseks (15 meetodit)

3. Excel VBA andmete kopeerimiseks teisest töövihikust ilma käsunupu avamiseta

Me saame kopeerida andmeid teisest töövihikust, kasutades käsunuppu VBA Selleks tuleb järgida allpool kirjeldatud samme.

SAMMUD:

  • Esiteks, et panna Käsunupp , minge aadressile Arendaja vahekaart.
  • Teiseks, klõpsake nuppu Sisesta rippmenüü.
  • Kolmandaks, klõpsake nupule Käsunupp .

  • Me paneme Toode raku kohta A1 , kuna see on meie lähtefaili lehe nimi. Ja me määrame Käsunupp , paremal pool lähtefaili lehe nime. Me lõime nüüd tabeli, meil on vaja ainult andmeid, mis on teises töövihikus.

  • Samamoodi navigeerige aadressil Arendaja vahekaart lindil.
  • Seejärel klõpsake nuppu Visual Basic või vajutage Alt + F11 et käivitada Visual Basic toimetaja .
  • Võite avada ka Visual Basic toimetaja tehes lehel paremklõpsu ja valides Vaata koodi .

  • Nüüd kirjutage VBA kood maha.

VBA kood:

 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 
  • Seejärel salvestage kood, vajutades Ctrl + S .

MÄRKUS: Saate koodi kopeerida, peate lihtsalt muutma faili tee ja andmevahemiku.

  • Ja lõpuks, kui te klõpsate CommandButton1 see kopeerib andmed teisest töövihikust ilma seda avamata.

Loe edasi: Makro andmete kopeerimiseks ühest töövihikust teise kriteeriumide alusel

Kokkuvõte

Ülaltoodud kriteeriumid on suunised andmete kopeerimiseks teisest töövihikust ilma seda avamata koos Excel VBA Loodan, et see aitab teid! Kui teil on küsimusi, ettepanekuid või tagasisidet, siis andke meile teada kommentaaride sektsioonis. Või võite heita pilgu meie teistesse artiklitesse aadressil ExcelWIKI.com blogi!

Hugh West on suurte kogemustega Exceli koolitaja ja analüütik, kellel on selles valdkonnas üle 10-aastane kogemus. Tal on raamatupidamise ja rahanduse bakalaureusekraad ning ärijuhtimise magistrikraad. Hugh’l on kirg õpetamise vastu ning ta on välja töötanud ainulaadse õpetamisviisi, mida on lihtne järgida ja mõista. Tema Exceli ekspertteadmised on aidanud tuhandetel õpilastel ja spetsialistidel üle maailma oma oskusi parandada ja karjääris silma paista. Oma ajaveebi kaudu jagab Hugh oma teadmisi maailmaga, pakkudes tasuta Exceli õpetusi ja veebikoolitusi, mis aitavad üksikisikutel ja ettevõtetel oma potentsiaali täielikult ära kasutada.