Tartalomjegyzék
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.xlsm3 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!