Obsah
Na adrese Microsoft Excel , Makra VBA lze snadno vyřešit celou řadu problémů. Pokud chceme zkopírovat data z jiného sešitu, aniž bychom jej museli otevřít, můžeme to snadno provést pomocí příkazu Excel VBA V tomto článku se dozvíte Excel VBA zkopírovat data z jiného sešitu, aniž byste jej otevřeli.
Stáhnout cvičebnici
Můžete si stáhnout pracovní sešit a procvičovat s nimi.
Kopírování dat jiného sešitu.xlsm3 různé způsoby kopírování dat z jiného sešitu bez otevření pomocí Excelu VBA
Někdy potřebujeme data z nějakého předchozího sešitu. Pokud spěcháme a potřebujeme data okamžitě, aniž bychom museli sešit otevřít, můžeme použít příkaz Excel VBA Pomocí nástroje Excel VBA můžeme rychle kopírovat data z jiných sešitů, k čemuž potřebujeme znát pouze umístění daného sešitu.
Pro kopírování dat použijeme název sešitu Product_Details . A my chceme zkopírovat rozsah dat ( B4:E10 ). Datový soubor, který chceme zkopírovat, obsahuje některé výrobky, jejich prodejní cenu, náklady na zboží a hrubé ziskové rozpětí. Podívejme se na různá kritéria pro kopírování dat z jiného sešitu.
1. Kopírování dat listu z jiného sešitu bez otevření pomocí Excel VBA
Data z listu můžeme zkopírovat podle příkazu VBA K tomu je třeba provést níže uvedené kroky.
KROKY:
- Nejprve přejděte na Vývojář z pásu karet.
- Poté klikněte na Visual Basic otevřít Editor jazyka Visual Basic .
- Další způsob, jak otevřít Editor jazyka Visual Basic je jednoduše stisknout Alt + F11 .
- Nebo klikněte pravým tlačítkem myši na list a vyberte možnost Zobrazit kód .
- Nyní si zapište Kód VBA níže.
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
- Nakonec spusťte kód kliknutím na tlačítko Run Sub na druhé straně stiskněte klávesovou zkratku F5 spustit kód.
POZNÁMKA: Kód nemusíte upravovat, stačí jej zkopírovat a vložit.
- Spuštěním kódu Otevření souboru se zobrazí okno počítače.
- Poté klikněte na sešit, do kterého chcete shromažďovat data.
- Poté klikněte na OK tlačítko.
- Nyní vyberte data ze zdrojového souboru přetažením přes rozsah. B5:E10 a pak klikněte na OK .
- Po výběru rozsahu dat. Nyní vyberte cílový rozsah, do kterého chcete data vložit.
- A klikněte na OK .
- Nakonec se zdrojový soubor uzavře a data se zkopírují do cílového souboru.
Přečtěte si více: Excel VBA: Kopírování rozsahu do jiného sešitu
Podobná čtení
- Jak vložit ze schránky do aplikace Excel pomocí VBA
- Zakázat kopírování a vkládání v aplikaci Excel bez maker (pomocí 2 kritérií)
- Jak zkopírovat vyloučení skrytých řádků v aplikaci Excel (4 snadné metody)
- Kopírování řádků aplikace Excel VBA do jiného pracovního listu na základě kritérií
- Jak použít VBA k vložení hodnot pouze bez formátování v aplikaci Excel
2. VBA pro kopírování datového rozsahu z jiného sešitu bez otevření v aplikaci Excel
Pomocí VBA kódu níže, můžeme zkopírovat data z datového rozsahu. Abychom toho dosáhli, musíme postupovat podle níže uvedených kroků.
KROKY:
- Chcete-li začít, přejděte do Vývojář na pásu karet.
- Za druhé otevřete Editor jazyka Visual Basic kliknutím na Visual Basic nebo stisknutím tlačítka Alt + F11 .
- Nebo jednoduše klikněte pravým tlačítkem myši na list a vyberte možnost Zobrazit kód otevřít Editor jazyka Visual Basic .
- Poté si zapište Kód VBA tam.
Kód VBA:
Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") 'kam vložit zkopírovaná data. rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub
- Zde spusťte kód pomocí Spustit Sub nebo stiskněte klávesovou zkratku F5 ke spuštění kódu.
POZNÁMKA: Kód nemusíte upravovat, stačí jen změnit rozsah podle zdrojových dat.
- A nakonec se data zkopírují z jiného sešitu do aktivního sešitu.
Přečtěte si více: Makro pro kopírování a vkládání z jednoho pracovního listu do druhého (15 metod)
3. Excel VBA pro kopírování dat z jiného sešitu bez otevření pomocí příkazového tlačítka
Data můžeme zkopírovat z jiného sešitu pomocí příkazového tlačítka na panelu VBA kódu. Abychom toho dosáhli, musíme postupovat podle níže uvedených kroků.
KROKY:
- Zaprvé, abyste mohli Příkazové tlačítko , přejděte na Vývojář tab.
- Za druhé klikněte na Vložte rozevírací nabídka.
- Za třetí klikněte na Příkazové tlačítko .
- Vložili jsme Produkt na buňce A1 , protože je to název našeho listu zdrojového souboru. A nastavíme. Příkazové tlačítko , na pravé straně názvu listu zdrojového souboru. Tabulku jsme nyní vytvořili, potřebujeme jen data, která jsou v jiném sešitě.
- Ze stejného důvodu přejděte na stránku Vývojář na pásu karet.
- Dále klikněte na Visual Basic nebo stiskněte Alt + F11 spustit Editor jazyka Visual Basic .
- Můžete také otevřít Editor jazyka Visual Basic kliknutím pravým tlačítkem myši na list a výběrem možnosti Zobrazit kód .
- Nyní napište VBA kód dolů.
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
- Poté kód uložte stisknutím tlačítka Ctrl + S .
POZNÁMKA: Kód můžete zkopírovat, stačí změnit cestu k souboru a rozsah dat.
- A konečně, pokud kliknete na CommandButton1 zkopírujete data z jiného sešitu, aniž byste jej otevřeli.
Přečtěte si více: Makro pro kopírování dat z jednoho sešitu do druhého na základě kritérií
Závěr
Výše uvedená kritéria jsou pokyny pro kopírování dat z jiného sešitu, aniž by bylo nutné jej otevírat pomocí Excel VBA . Doufám, že vám to pomůže! Pokud máte nějaké dotazy, návrhy nebo zpětnou vazbu, dejte nám vědět v sekci komentářů. Nebo se můžete podívat na naše další články v sekci ExcelWIKI.com blog!