Obsah
Na stránke Microsoft Excel , Makrá VBA môžeme ľahko vyriešiť širokú škálu problémov. Ak chceme skopírovať údaje z iného zošita bez toho, aby sme ho otvorili, môžeme to ľahko urobiť pomocou Excel VBA V tomto článku sa dozviete Excel VBA skopírovať údaje z iného zošita bez toho, aby ste ho otvorili.
Stiahnite si cvičebnicu
Môžete si stiahnuť pracovný zošit a precvičovať s nimi.
Kopírovanie údajov iného zošita.xlsm3 rôzne spôsoby kopírovania údajov z iného zošita bez otvorenia pomocou Excel VBA
Niekedy potrebujeme údaje z nejakého predchádzajúceho zošita. Ak sa ponáhľame a potrebujeme údaje okamžite bez otvorenia zošita, môžeme použiť príkaz Excel VBA Pomocou programu Excel VBA môžeme rýchlo kopírovať údaje z iných zošitov, na čo potrebujeme poznať len umiestnenie daného zošita.
Na kopírovanie údajov použijeme názov zošita Product_Details A chceme skopírovať rozsah údajov ( B4:E10 ). Súbor údajov, ktorý chceme skopírovať, obsahuje niektoré výrobky, ich predajné ceny, náklady na tovar a hrubé ziskové rozpätie. Pozrime sa na rôzne kritériá na kopírovanie údajov z iného zošita.
1. Kopírovanie údajov hárku z iného zošita bez otvorenia pomocou Excel VBA
Údaje môžeme kopírovať z hárku podľa príkazu VBA Na tento účel musíme prejsť nižšie uvedenými krokmi.
KROKY:
- Najprv prejdite na Vývojár na páse kariet.
- Potom kliknite na Visual Basic otvoriť Editor jazyka Visual Basic .
- Ďalší spôsob otvorenia Editor jazyka Visual Basic je jednoducho stlačiť Alt + F11 .
- Alebo kliknite pravým tlačidlom myši na hárok a vyberte položku Zobraziť kód .
- Teraz si zapíšte Kód VBA nižšie.
Kód 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 SubEnd With End Sub
- Nakoniec spustite kód kliknutím na tlačidlo Run Sub na druhej strane stlačte klávesovú skratku F5 spustiť kód.
POZNÁMKA: Kód nemusíte upravovať, stačí ho skopírovať a vložiť.
- Spustením kódu Otvorenie súboru sa zobrazí okno z vášho počítača.
- Potom kliknite na zošit, z ktorého chcete zbierať údaje.
- Potom kliknite na OK tlačidlo.
- Teraz vyberte údaje zo zdrojového súboru potiahnutím nad rozsah B5:E10 a potom kliknite na OK .
- Po výbere rozsahu údajov. Teraz vyberte cieľový rozsah, do ktorého chcete údaje umiestniť.
- A kliknite na OK .
- Nakoniec sa zdrojový súbor uzavrie a údaje sa skopírujú do cieľového súboru.
Prečítajte si viac: Excel VBA: Kopírovanie rozsahu do iného zošita
Podobné čítania
- Ako vložiť zo schránky do programu Excel pomocou VBA
- Zakázanie kopírovania a vkladania v programe Excel bez makier (s 2 kritériami)
- Ako skopírovať vylúčenie skrytých riadkov v programe Excel (4 jednoduché metódy)
- Excel VBA na kopírovanie riadkov do iného pracovného hárka na základe kritérií
- Ako používať VBA na vkladanie hodnôt len bez formátovania v programe Excel
2. VBA na kopírovanie rozsahu údajov z iného zošita bez otvorenia v programe Excel
Pomocou VBA kódu nižšie, môžeme kopírovať údaje z rozsahu údajov. Na dosiahnutie tohto cieľa musíme postupovať podľa nižšie uvedených krokov.
KROKY:
- Ak chcete začať, prejdite do Vývojár na páse kariet.
- Po druhé, otvorte Editor jazyka Visual Basic kliknutím na Visual Basic alebo stlačením Alt + F11 .
- Alebo jednoducho kliknite pravým tlačidlom myši na hárok a vyberte Zobraziť kód otvoriť Editor jazyka Visual Basic .
- Potom si zapíšte Kód VBA tam.
Kód VBA:
Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") 'kam sa vložia skopírované údaje. rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub
- Tu spustite kód pomocou Spustiť Sub alebo stlačte klávesovú skratku F5 na spustenie kódu.
POZNÁMKA: Kód nemusíte upravovať, stačí len zmeniť rozsah podľa vašich zdrojových údajov.
- A nakoniec sa údaje skopírujú z iného zošita do aktívneho zošita.
Prečítajte si viac: Makro na kopírovanie a vkladanie z jedného pracovného hárka do druhého (15 metód)
3. Excel VBA na kopírovanie údajov z iného zošita bez otvorenia pomocou príkazového tlačidla
Údaje môžeme kopírovať z iného zošita pomocou príkazového tlačidla na VBA Aby sme to dosiahli, musíme postupovať podľa nižšie uvedených krokov.
KROKY:
- Po prvé, na umiestnenie Príkazové tlačidlo , prejdite na stránku Vývojár tab.
- Po druhé, kliknite na Vložte rozbaľovacie menu.
- Po tretie, kliknite na Príkazové tlačidlo .
- Dali sme Produkt na bunke A1 , pretože je to názov nášho zdrojového súboru. A nastavíme Príkazové tlačidlo , na pravej strane názvu hárku zdrojového súboru. Teraz sme vytvorili tabuľku, potrebujeme len údaje, ktoré sú v inom zošite.
- Z rovnakého dôvodu prejdite do Vývojár na páse kariet.
- Potom kliknite na Visual Basic alebo stlačte Alt + F11 na spustenie Editor jazyka Visual Basic .
- Môžete tiež otvoriť Editor jazyka Visual Basic kliknutím pravým tlačidlom myši na hárok a výberom Zobraziť kód .
- Teraz napíšte VBA kód dole.
Kód 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
- Potom kód uložte stlačením tlačidla Ctrl + S .
POZNÁMKA: Kód môžete skopírovať, len musíte zmeniť cestu k súboru a rozsah údajov.
- A nakoniec, ak kliknete na CommandButton1 skopírujete údaje z iného zošita bez toho, aby ste ho otvorili.
Prečítajte si viac: Makro na kopírovanie údajov z jedného zošita do druhého na základe kritérií
Záver
Vyššie uvedené kritériá sú návodom na kopírovanie údajov z iného zošita bez jeho otvorenia pomocou Excel VBA . Dúfam, že vám to pomôže! Ak máte akékoľvek otázky, návrhy alebo spätnú väzbu, dajte nám vedieť v sekcii komentárov. Alebo si môžete pozrieť naše ďalšie články v ExcelWIKI.com blog!