Excel VBA na kopírovanie údajov z iného zošita bez otvorenia

  • Zdieľajte To
Hugh West

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.xlsm

3 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!

Hugh West je veľmi skúsený tréner a analytik Excelu s viac ako 10-ročnými skúsenosťami v tomto odvetví. Má bakalársky titul v odbore účtovníctvo a financie a magisterský titul v odbore Business Administration. Hugh má vášeň pre vyučovanie a vyvinul jedinečný vyučovací prístup, ktorý sa dá ľahko sledovať a pochopiť. Jeho odborné znalosti Excelu pomohli tisíckam študentov a profesionálov na celom svete zlepšiť svoje zručnosti a vyniknúť vo svojej kariére. Hugh sa prostredníctvom svojho blogu delí o svoje znalosti so svetom a ponúka bezplatné výukové programy Excelu a online školenia, ktoré jednotlivcom a firmám pomôžu naplno využiť ich potenciál.