Tietojen poimiminen suljetusta tiedostosta toisessa työkirjassa on useimpien Excel -käyttäjien yhteinen pyyntö. He haluavat vetää tai yhdistää tietoja suljetuista tiedostoista; tämä ei kuitenkaan ole mahdollista. On olemassa kiertotie, joka auttaa ratkaisemaan tämän ongelman. Ratkaisu on käyttää makrokoodia.
Kysymys: Käytän päivittäin aikaa tietojen kopioimiseen tiedostosta toiseen. Siellä on kaksi tiedostoa “Open.xls” ja “Closed.xls” ja haluan kopioida tietoja “Closed.xls” - tiedostosta “Open.xls” VBA -koodin kautta.
Tärkeimmät asiat:
- Ensimmäinen asia on, että meidän pitäisi tietää suljetun työkirjan "Usedrange" eli "Closed.xls" avoimen työkirjan sisällä esim. "Open.xls"
- Voimme käyttää IF -toimintoa "Open.xls" -työkirjan "Closed.xls" -työkirjan Usedrange -osiossa ja se poimii tiedot "Closed.xls" -työkirjasta
- Jos viitesolu on tyhjä, numero ei ole käytössä. Erikoissolut -menetelmällä voit poistaa kaikki #N/A -virheet ja muuttaa kaavan arvoiksi
Aluksi tallennamme kaksi Excel -tiedostoa 1) Open.xls 2) Closed.xls polulle "D: \ Test Folder"
Seuraavassa on tilannevedos Closed.xls -työkirjasta:
Jos haluat tallentaa tiedot automaattisesti "Closed.xls" -tiedostosta "Open.xls" -tiedostoon, meidän on suoritettava seuraavat vaiheet VB -editorin käynnistämiseksi
- Napsauta Kehittäjä -välilehteä
- Valitse koodiryhmästä Visual Basic
- Kopioi alla oleva koodi ThisWorkbookiin (Closed.xls)
Yksityinen alityökirja_BeforeSave (ByVal SaveAsUI as Boolean, _ Cancel as Boolean) 'Kirjoita Sheet1 UsedRange-osoite Closed.xls (tämä työkirja)'-Kommentti Sheet2.Cells (1, 1) = Sheet1.UsedRange.Address End Sub
- Jos haluat vetää tiedot "Open.xls" -kansioon, kopioi seuraava koodi standardimoduuliin
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) Sheet1.Range (AreaAddress) .FormulaR1C1 = "= IF ('D: \ Test Folder \" & "[Closed.xls] Sheet1'! RC =" "" ", NA (), 'D: \ Test Folder \ "& _" [Closed.xls] Sheet1 '! RC) "On Error Jatka seuraavaksi.
- Kopioi seuraava koodi ThisWorkbookissa (Open.xls)
Private Sub Workbook_Open () Suorita "Importdata" End Sub
Nyt VBA -koodit on asetettu; meidän tarvitsee vain avata tiedostonimi "Open.xls". Seuraavassa on tilannevedos Open.xls -tiedostosta:
Koodi ei rajoitu solun kopiointiin osoitteesta A1. koodi valitsee aloitusalueen ja toimii täydellisesti. Tiedostot ovat ladattavissa ja suosittelemme kokeilemaan.
Johtopäätös: VBA -koodilla voimme automatisoida tiedonsiirtotehtävän avaamatta kohdekirjaa ja säästää itsemme tekemästä manuaalista kopiointia ja liittämistä.
Jos pidit blogistamme, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.
Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa, täydentää tai innovoida työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse