Excel VBA az adatok másolásához egy másik munkafüzetből megnyitás nélkül

  • Ossza Meg Ezt
Hugh West

A oldalon. Microsoft Excel , VBA makrók a problémák széles skáláját könnyedén megoldhatjuk. Ha egy másik munkafüzetből szeretnénk adatokat másolni anélkül, hogy a munkafüzetet megnyitnánk, akkor ezt könnyen megtehetjük a következő módon Excel VBA Ebben a cikkben megtudhatja, hogy Excel VBA adatok másolása egy másik munkafüzetből annak megnyitása nélkül.

Gyakorlati munkafüzet letöltése

Letöltheti a munkafüzetet, és gyakorolhat velük.

Egy másik munkafüzet adatainak másolása.xlsm

3 különböző mód az adatok másolásához egy másik munkafüzetből az Excel VBA megnyitás nélkül

Néha szükségünk van adatokra egy korábbi munkafüzetből. Ha sietünk, és azonnal szükségünk van az adatokra anélkül, hogy megnyitnánk a munkafüzetet, használhatjuk a Excel VBA Az Excel VBA segítségével gyorsan másolhatjuk az adatokat más munkafüzetekből, ehhez csak az adott munkafüzet helyét kell ismernünk.

Az adatok másolásához a munkafüzet nevét fogjuk használni. Product_Details És szeretnénk másolni az adattartományt ( B4:E10 ). A másolni kívánt adatkészlet tartalmaz néhány terméket, azok eladási árát, áruk költségét és bruttó haszonkulcsát. Nézzük meg, milyen különböző kritériumokkal másolhatunk adatokat egy másik munkafüzetből.

1. Lapadatok másolása egy másik munkafüzetből az Excel VBA-val történő megnyitás nélkül

Az adatokat egy lapról a következő módon másolhatjuk le VBA Ehhez az alábbi lépéseken kell végigmennünk.

LÉPÉSEK:

  • Először is, menjen a Fejlesztő lapot a szalagról.
  • Ezután kattintson a Visual Basic a Visual Basic szerkesztő .
  • Egy másik módja a Visual Basic szerkesztő egyszerűen csak meg kell nyomni Alt + F11 .

  • Vagy kattintson a jobb gombbal a lapra, majd válassza a Kód megtekintése .

  • Most írja le a VBA kód az alábbiakban.

VBA-kód:

 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 
  • Végül futtassa a kódot a Run Sub gombot, másrészt nyomja meg a billentyűzet gyorsbillentyűparancsot F5 billentyűt a kód futtatásához.

MEGJEGYZÉS: Nem kell módosítania a kódot, csak másolja és illessze be a kódot.

  • A kód futtatásával Fájl megnyitása ablak jelenik meg a számítógépen.
  • Ezután kattintson arra a munkafüzetre, amelyből adatokat szeretne gyűjteni.
  • Ezután kattintson a OK gomb.

  • Most válassza ki az adatokat a forrásfájlból a tartomány fölé húzással. B5:E10 majd kattintson a OK .

  • Az adattartomány kiválasztása után válassza ki a céltartományt, ahová az adatokat szeretné helyezni.
  • És, kattintson OK .

  • A végén ez bezárja a forrásfájlt, és az adatok átmásolódnak a célfájlba.

Bővebben: Excel VBA: Tartomány másolása egy másik munkafüzetbe

Hasonló olvasmányok

  • Hogyan illesszük be a VBA használatával a Vágólapról az Excel-be?
  • Másolás és beillesztés letiltása az Excelben makrók nélkül (2 kritériummal)
  • Hogyan lehet másolni a rejtett sorok kizárását az Excelben (4 egyszerű módszer)
  • Excel VBA a sorok másolásához egy másik munkalapra a kritériumok alapján
  • Hogyan használhatja a VBA-t az értékek beillesztéséhez csak formázás nélkül az Excelben?

2. VBA egy adattartomány másolása egy másik munkafüzetből az Excel megnyitása nélkül

A VBA kóddal tudunk adatokat másolni egy adattartományból. Ehhez az alábbi lépéseket kell követnünk.

LÉPÉSEK:

  • A kezdéshez navigáljon a Fejlesztő lapot a szalagban.
  • Másodszor, nyissa meg a Visual Basic szerkesztő a Visual Basic vagy a Alt + F11 .
  • Vagy egyszerűen kattintson a jobb gombbal a lapra, és válassza a Kód megtekintése a Visual Basic szerkesztő .

  • Ezután írja le a VBA kód ott.

VBA-kód:

 Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") 'ahová a másolt adatokat helyezzük. rgTarget.FormulaArray = "='D:\\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub 
  • Itt futtassa a kódot a Fuss Sub vagy nyomja meg a billentyűkombinációt F5 a kód futtatásához.

MEGJEGYZÉS: Nem kell módosítania a kódot, csak a tartományt kell megváltoztatnia a forrásadatoknak megfelelően.

  • Végül pedig az adatok egy másik munkafüzetből átmásolódnak az aktív munkafüzetbe.

Bővebben: Makró az egyik munkalapról a másikra történő másoláshoz és beillesztéshez (15 módszer)

3. Excel VBA az adatok másolásához egy másik munkafüzetből a parancsgomb megnyitásával történő megnyitása nélkül

Az adatokat egy másik munkafüzetből másolhatjuk a parancsgomb segítségével a VBA Ehhez az alábbi lépéseket kell követnünk.

LÉPÉSEK:

  • Először is, hogy egy Parancs gomb , menjen a Fejlesztő tab.
  • Másodszor, kattintson a Beillesztés legördülő menü.
  • Harmadszor, kattintson a Parancs gomb .

  • Mi tesszük a Termék a cellán A1 , mivel ez a forrásfájl lapunk neve. És beállítjuk a Parancs gomb , a forrásfájl lapnevének jobb oldalán. A táblázatot már létrehoztuk, már csak az adatokra van szükségünk, amelyek egy másik munkafüzetben vannak.

  • Ugyanígy, navigáljon a Fejlesztő lapot a szalagban.
  • Ezután kattintson a Visual Basic vagy nyomja meg a Alt + F11 a Visual Basic szerkesztő .
  • Megnyithatja a Visual Basic szerkesztő a lapon jobb egérgombbal kattintva, majd válassza a Kód megtekintése .

  • Most írja le a VBA kód le.

VBA-kód:

 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 
  • Ezután mentse a kódot a Ctrl + S .

MEGJEGYZÉS: A kódot másolhatja, csak a fájl elérési útját és az adattartományt kell megváltoztatnia.

  • És végül, ha rákattint a CommandButton1 ez az adatokat egy másik munkafüzetből másolja át anélkül, hogy megnyitná azt.

Bővebben: Makró az adatok egyik munkafüzetből egy másikba való másolásához kritériumok alapján

Következtetés

A fenti kritériumok iránymutatásként szolgálnak az adatok másolásához egy másik munkafüzetből anélkül, hogy azt megnyitná a Excel VBA Ha bármilyen kérdése, javaslata vagy visszajelzése van, kérjük, ossza meg velünk a megjegyzés rovatban. Vagy vethet egy pillantást a többi cikkünkre a ExcelWIKI.com blog!

Hugh West nagy tapasztalattal rendelkező Excel-oktató és elemző, több mint 10 éves tapasztalattal az iparágban. Számvitel és pénzügy szakos alapdiplomát, valamint üzleti adminisztrációból mesterképzést szerzett. Hugh szenvedélye a tanítás, és egyedülálló tanítási megközelítést dolgozott ki, amely könnyen követhető és érthető. Az Excelben szerzett szakértői tudása világszerte több ezer diáknak és szakembernek segített abban, hogy készségeiket és karrierjüket kiválóan teljesítsék. Hugh blogján keresztül megosztja tudását a világgal, ingyenes Excel-oktatóanyagokat és online képzéseket kínálva, hogy segítse az egyéneket és a vállalkozásokat teljes potenciáljuk kibontakoztatásában.