Izvlečenje podatkov iz zaprte datoteke v drug delovni zvezek je pogosta zahteva večine uporabnikov excela. Radi bi potegnili ali konsolidirali podatke iz zaprtih datotek; vendar to ni mogoče. Obstaja rešitev, ki pomaga rešiti to težavo. Rešitev je uporaba makro kode.
Vprašanje: Vsak dan porabim čas za kopiranje podatkov iz ene datoteke v drugo. Obstajata dve datoteki »Open.xls« in »Closed.xls«. Želim kopirati podatke iz »Closed.xls« v »Open.xls« prek kode VBA.
Ključne stvari, ki jih morate vedeti:
- Prva stvar je, da bi morali v odprtem delovnem zvezku poznati "uporabljeni obseg" zaprtega delovnega zvezka, tj. "Zaprto.xls" za npr. "Open.xls"
- Funkcijo IF lahko uporabimo v uporabljenem obsegu delovnega zvezka »Closed.xls« v delovnem zvezku »Open.xls« in bo izvlekel podatke iz delovnega zvezka »Closed.xls«
- Če je referenčna celica prazna, se vstavi #N/A. Z metodo specialcells lahko nato izbrišete vse napake #N/A in formulo spremenite v vrednosti
Za začetek bomo shranili dve datoteki excel 1) Open.xls 2) Closed.xls na poti »D: \ Test Folder«
Sledi posnetek delovnega zvezka »Closed.xls«:
Za samodejno shranjevanje podatkov iz datoteke »Closed.xls« v datoteko »Open.xls« moramo slediti spodnjim korakom za zagon urejevalnika VB
- Kliknite zavihek Razvijalec
- V skupini Koda izberite Visual Basic
- Kopirajte spodnjo kodo v to delovno knjigo (zaprto.xls)
Private Sub Workbook_BeforeSave (ByVal SaveAsUI Kot Boolean, _ Cancel As Boolean) 'Vnesite naslov UsedRange na Sheet1 Closed.xls (ta delovni zvezek)' --- List z komentarji 2. Celice (1, 1) = Sheet1.UsedRange.Address End Sub
- Če želite potegniti podatke v datoteko »Open.xls«, kopirajte naslednjo kodo v standardni 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) S Sheet1.Range (AreaAddress) .FormulaR1C1 = "= IF ('D: \ Test Folder \" & "[Closed.xls] Sheet1'! RC =" "" ", NA (), 'D: \ Preskusna mapa \ "& _" [Zaprto.xls] List1 '! RC) "Napaka Nadaljuj Naprej. Posebne celice (xlCellTypeFormulas, xlErrors). Počisti napako Pojdi na 0.
- Kopirajte naslednjo kodo v to delovno knjigo (Open.xls)
Private Sub Workbook_Open () Zaženite "Importdata" End Sub
Zdaj so vse kode VBA nastavljene; Vse kar moramo storiti je, da odpremo ime datoteke »Open.xls«. Sledi posnetek datoteke »Open.xls«:
Koda ni omejena na kopijo celice iz območja A1.usedrange; koda bo izbrala začetno območje in bo delovala popolnoma v redu. Datoteke so na voljo za prenos in priporočamo, da jih poskusite.
Zaključek: S kodo VBA lahko avtomatiziramo nalogo pridobivanja podatkov, ne da bi odprli ciljni delovni zvezek, pri tem pa se rešimo ročnega kopiranja in lepljenja.
Če so vam bili naši blogi všeč, jih delite s prijatelji na Facebooku. Prav tako nas lahko spremljate na Twitterju in Facebooku.
Radi bi slišali od vas, nam sporočite, kako lahko izboljšamo, dopolnimo ali inoviramo svoje delo in ga izboljšamo. Pišite nam na spletni strani elektronske pošte