Vyjmout data z uzavřeného sešitu

Anonim

Extrahování dat z uzavřeného souboru do jiného sešitu je běžným požadavkem většiny uživatelů aplikace Excel. Chtěli by stáhnout nebo konsolidovat data z uzavřených souborů; to však není možné. Existuje řešení, které pomáhá tento problém vyřešit. Řešením je použití kódu makra.

Otázka: Denně trávím čas kopírováním dat z jednoho souboru do druhého. Existují dva soubory „Open.xls“ a „Closed.xls“ a chci zkopírovat data z „Closed.xls“ do „Open.xls“ pomocí kódu VBA.

Klíčové věci, které je třeba vědět:

  • První věcí je, že bychom v otevřeném sešitu měli znát „Usedrange“ uzavřeného sešitu, tj. „Closed.xls“, např. “Open.xls”
  • Můžeme použít funkci IF v Usedrange sešitu „Closed.xls“ v sešitu „Open.xls“ a data bude extrahovat ze sešitu „Closed.xls“
  • Pokud je odkazující buňka prázdná, #N/A se vloží. Pomocí metody specialcells pak můžete odstranit všechny chyby #N/A a změnit vzorec na hodnoty

Pro začátek uložíme dva soubory Excelu 1) Open.xls 2) Closed.xls do cesty „D: \ Test Folder“

Následuje snímek sešitu „Closed.xls“:

Chcete -li automaticky ukládat data ze souboru „Closed.xls“ do souboru „Open.xls“, musíme ke spuštění editoru VB provést následující kroky

  • Klikněte na kartu Vývojář
  • Ze skupiny kódů vyberte Visual Basic

  • Zkopírujte níže uvedený kód do ThisWorkbook (Closed.xls)
 Private Sub Workbook_BeforeSave (ByVal SaveAsUI As Boolean, _ Cancel As Boolean) 'Put in the UsedRange Address of Sheet1 Closed.xls (this workbook)' --- Comment Sheet2.Cells (1, 1) = Sheet1.UsedRange.Address End Sub 

  • Chcete -li stáhnout data do souboru „Open.xls“, zkopírujte následující kód do standardního modulu
 Sub Importdata () Dim AreaAddress As String Sheet1.UsedRange.Clear Sheet1.Cells (1, 1) = "= 'D: \ Test Folder \" & "[Closed.xls] Sheet2'! RC" AreaAddress = Sheet1.Cells ( 1, 1) S Sheet1.Range (AreaAddress) .FormulaR1C1 = "= IF ('D: \ Test Folder \" & "[Closed.xls] Sheet1'! RC =" "" ", NA (), 'D: \ Test Folder \ "& _" [Closed.xls] Sheet1 '! RC) "On Error Resume Next .SpecialCells (xlCellTypeFormulas, xlErrors) .Clear On Error GoTo 0 .Value = .Value End With End Sub 

  • Zkopírujte následující kód do ThisWorkbook (Open.xls)
 Soukromý dílčí sešit_Open () Spusťte „Subdata importu“ 

Nyní jsou všechny kódy VBA nastaveny; vše, co musíme udělat, je otevřít název souboru „Open.xls“. Následuje snímek souboru „Open.xls“:

Kód není omezen na kopii buňky z A1.usedrange; kód vybere počáteční rozsah a bude fungovat naprosto v pořádku. Soubory jsou k dispozici ke stažení a doporučujeme vám, abyste si to vyzkoušeli.

Závěr: S kódem VBA můžeme automatizovat úlohu extrakce dat bez otevření cílového sešitu a šetříme se před ručním kopírováním a vkládáním.

Pokud se vám naše blogy líbily, sdílejte je se svými přáteli na Facebooku. A také nás můžete sledovat na Twitteru a Facebooku.

Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit, doplnit nebo inovovat naši práci a zlepšit ji pro vás. Napište nám na e -mail