Ištraukite duomenis iš uždarytos darbaknygės

Anonim

Duomenų išgavimas iš uždaro failo kitoje darbaknygėje yra įprasta daugumos „Excel“ vartotojų užklausa. Jie norėtų ištraukti arba konsoliduoti duomenis iš uždarų failų; tačiau tai neįmanoma. Yra sprendimas, padedantis išspręsti šią problemą. Sprendimas yra naudojant makro kodą.

Klausimas: Kasdien praleidžiu laiką kopijuodamas duomenis iš vieno failo į kitą. Yra du failai „Open.xls“ ir „Closed.xls“ - noriu per VBA kodą nukopijuoti duomenis iš „Closed.xls“ į „Open.xls“.

Pagrindiniai dalykai, kuriuos reikia žinoti:

  • Pirmiausia turėtume žinoti uždarytos darbo knygos „Usedrange“, ty „Closed.xls“ atviroje darbo knygoje, pvz. „Open.xls“
  • Mes galime naudoti IF funkciją „Open.xls“ darbaknygės „Closed.xls“ darbaknygės „Usedrange“ skiltyje ir ji ištrauks duomenis iš „Closed.xls“ darbaknygės
  • Jei nuorodos langelis tuščias, įvedamas #N/A. Naudodami specialiųjų ląstelių metodą, galite ištrinti visas #N/A klaidas ir pakeisti formulę į reikšmes

Norėdami pradėti, išsaugosime du „Excel“ failus 1) „Open.xls“ 2) „Closed.xls“ kelyje „D: \ Test Folder“

Toliau pateikiama „Closed.xls“ darbo knygos momentinė nuotrauka:

Norėdami automatiškai išsaugoti duomenis iš „Closed.xls“ failo į „Open.xls“ failą, norėdami paleisti VB redaktorių, turime atlikti šiuos veiksmus

  • Spustelėkite skirtuką Kūrėjas
  • Kodo grupėje pasirinkite „Visual Basic“

  • Nukopijuokite žemiau esantį kodą į „ThisWorkbook“ („Closed.xls“)
 Privatus antrinis darbaknygė_BeforeSave (ByVal SaveAsUI As Boolean, _ Cancel as Boolean) 'Įveskite „UsedRange Address of Sheet1 Closed.xls“ (ši darbaknygė) “--- Komentaras Sheet2.Cells (1, 1) = Sheet1.UsedRange.Address End Sub 

  • Norėdami ištraukti duomenis iš „Open.xls“, nukopijuokite šį kodą į standartinį modulį
 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) Su 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). Išvalyti klaidą GoTo 0 .Value = .Value End With End Sub 

  • Nukopijuokite šį kodą į „ThisWorkbook“ („Open.xls“)
 Privatus antrinis darbaknygė_Atidaryti () Vykdykite „Importuoti duomenis“ pabaiga 

Dabar visi VBA kodai nustatyti; viskas, ką mums reikia padaryti, tai atidaryti failo pavadinimą „Open.xls“. Toliau pateikiamas „Open.xls“ failo momentinis vaizdas:

Kodas neapsiriboja ląstelių kopija iš A1.usedrange; kodas pasirinks pradinį diapazoną ir veiks puikiai. Failus galima atsisiųsti ir rekomenduojame jums pabandyti.

Išvada: Naudodami VBA kodą, mes galime automatizuoti duomenų ištraukimo užduotį neatidarę paskirties darbaknygės ir sutaupome nuo rankinio kopijavimo ir įklijavimo.

Jei jums patiko mūsų tinklaraščiai, pasidalykite jais su draugais „Facebook“. Taip pat galite sekti mus „Twitter“ ir „Facebook“.

Mes norėtume išgirsti jūsų nuomonę, praneškite mums, kaip galime patobulinti, papildyti ar naujovinti savo darbą ir padaryti jį geresnį. Parašykite mums el