Vytiahnite údaje z uzavretého zošita

Anonim

Extrahovanie údajov z uzavretého súboru do iného zošita je bežnou požiadavkou väčšiny používateľov programu Excel. Chceli by stiahnuť alebo konsolidovať údaje z uzavretých súborov; to však nie je možné. Existuje riešenie, ktoré pomáha vyriešiť tento problém. Riešením je použitie makrokódu.

Otázka: Denne trávim čas kopírovaním údajov z jedného súboru do druhého. Existujú dva súbory „Open.xls“ a „Closed.xls“ a chcem skopírovať údaje z „Closed.xls“ do „Open.xls“ pomocou kódu VBA.

Kľúčové veci, ktoré by ste mali vedieť:

  • Prvá vec je, že by sme v otvorenom zošite mali poznať „Usedrange“ uzavretého zošita, t.j. „Closed.xls“, napr. “Open.xls”
  • Funkciu IF môžeme použiť v použitom rozsahu zošita „Closed.xls“ v zošite „Open.xls“ a bude extrahovať údaje zo zošita „Closed.xls“
  • Ak je odkazujúca bunka prázdna, #N/A sa vloží. Pomocou metódy specialcells potom môžete odstrániť všetky #N/A chyby a zmeniť vzorec na hodnoty

Na začiatok uložíme dva súbory programu Excel 1) Open.xls 2) Closed.xls do cesty „D: \ Test Folder“

Nasleduje snímka zošita „Closed.xls“:

Na automatické ukladanie údajov zo súboru „Closed.xls“ do súboru „Open.xls“ musíme pri spustení editora VB vykonať nasledujúce kroky.

  • Kliknite na kartu Vývojár
  • V skupine Kód vyberte položku Visual Basic

  • Skopírujte nižšie uvedený kód do tejto pracovnej knihy (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 

  • Ak chcete stiahnuť údaje do súboru „Open.xls“, skopírujte nasledujúci kód do štandardné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 listom1.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 

  • Skopírujte nasledujúci kód do ThisWorkbook (Open.xls)
 Súkromný čiastkový zošit_Open () Spustite podsekciu „Importované údaje“ 

Teraz sú kódy VBA nastavené; Všetko, čo musíme urobiť, je otvoriť názov súboru „Open.xls“. Nasleduje snímka súboru „Open.xls“:

Kód nie je obmedzený na kópiu bunky z A1.usedrange; kód vyberie počiatočný rozsah a bude fungovať úplne v poriadku. Súbory sú k dispozícii na stiahnutie a odporúčame vám ich začať.

Záver: S kódom VBA môžeme automatizovať úlohu extrakcie údajov bez otvorenia cieľového zošita a šetríme sa pred ručným kopírovaním a vkladaním.

Ak sa vám páčili naše blogy, zdieľajte ich so svojimi priateľmi na Facebooku. A tiež nás môžete sledovať na Twitteri a Facebooku.

Radi by sme vás počuli, dajte nám vedieť, ako môžeme zlepšiť, doplniť alebo inovovať našu prácu a zlepšiť ju pre vás. Napíšte nám na emailovú stránku