Kai dirbate su įvairiais duomenų šaltiniais, jums dažnai gali būti sunku sudaryti kelias darbaknyges ir darbalapius prieš pasiekiant vieną galutinį duomenų elementą. Įsivaizduokite situaciją, kai prieš pradėdami dieną turite sujungti kelis šimtus darbaknygių.
Niekas nenori praleisti begalės valandų dirbdamas su skirtingais šaltiniais, atidarydamas kiekvieną darbaknygę, kopijuodamas ir įklijuodamas duomenis iš įvairių lapų, kol galiausiai padarys vieną konsoliduotą darbaknygę. Ką daryti, jei VBA makrokomanda gali tai padaryti už jus?
Naudodami šį vadovą galite sukurti savo Excel VBA makrokomandos kodą, kad sujungtumėte kelias darbaknyges – visa tai per kelias minutes (jei duomenų failų yra daug).
Būtinos sąlygos norint sukurti savo VBA makrokodą
Jums reikia vienos darbaknygės, kad būtų įrašytas VBA kodas, o likusios šaltinio duomenų darbaknygės yra atskiros. Be to, sukurkite vieną darbaknygę Konsoliduota išsaugoti konsoliduotus duomenis iš visų darbaknygių.
Sukurkite aplanką Konsolidavimas pageidaujamoje vietoje, kad galėtumėte saugoti visas šaltinio darbaknyges. Kai makrokomanda vykdoma, ji perjungs kiekvieną šiame aplanke saugomą darbaknygę, nukopijuos turinį iš įvairių lapų ir įdės į konsoliduotą darbaknygę.
Sukurkite savo Excel VBA kodą
Kai nebeliks būtinųjų sąlygų, laikas įsigilinti į kodą ir pradėti įsilaužti į pagrindus, kad pritaikytumėte jį savo poreikiams.
Susijęs: Išplėstinės „Microsoft Excel“ funkcijos, kurias turite žinoti
Paspauskite Alt + F11 klavišą Excel, kad atidarytumėte VBA makrokomandos kodo rengyklę. Įklijuokite žemiau parašytą kodą ir išsaugokite failą kaip darbaknygę su makrokomandomis (.xlsm pratęsimas).
Antriniai atviri failai ()
'pareikškite VBA kode naudojamus kintamuosius
Pritemdykite MyFolder kaip eilutę, MyFile kaip eilutę, wbmain kaip darbaknygę, paskutinės eilės kaip ilgai
Išjunkite šias funkcijas, kad pagerintumėte kodo apdorojimą
Su programa
.DisplayAlerts = Netiesa
.ScreenUpdating = Netiesa
Baigti suPakeiskite aplanko, kuriame bus saugomi failai, kelią
MyFolder = InputBox ("Įveskite konsolidavimo aplanko kelią") & "\"
Apibrėžkite aplanko nuorodą makrokomandos kintamajame
MyFile = Dir (MyFolder)
Atidarykite ciklą, kad peržiūrėtumėte kiekvieną atskirą aplanke saugomą darbaknygę
Atlikite, kol Len (Mano failas) > 0
Suaktyvinkite konsolidavimo darbaknygę
„Windows“ („Konsolidavimas“). Suaktyvinkite
'apskaičiuokite paskutinę užpildytą eilutę
Diapazonas ("a1048576"). Pasirinkite
Pasirinkimas. Pabaiga (xlUp). Pasirinkite
ActiveCell. Poslinkis (1, 0). PasirinkiteAtidarykite pirmąją darbaknygę aplanke Konsolidacija
Darbo knygelės. Atidarykite Filename:=MyFolder & MyFile
Windows (MyFile). Suaktyvinkite
Norėdami nukopijuoti duomenis, perjunkite kiekvieną darbaknygės lapą
Dim ws kaip darbalapis
Kiekvienam ws lapuosews. Suaktyvinti
ws. AutoFilterMode = klaidingaNepaisykite antraštės ir nukopijuokite duomenis iš 2 eilutės
Jei langeliai (2, 1) = "" Tada eikite į 1Eiti į 10
1: Kitas
10: diapazonas("a2:az20000").Kopijuoti
„Windows“ („Konsolidavimas“). Suaktyvinkite
Įklijuokite nukopijuotą turinį
ActiveSheet. Įklijuoti
Windows (MyFile). Suaktyvinkite
„Uždarykite atidarytą darbaknygę, kai duomenys bus įklijuoti
ActiveWorkbook. Uždaryti
Ištuštinkite talpyklą, kad išsaugotumėte kitos darbaknygės vertę
MyFile = Dir()
'atidaryti kitą failą aplanke
Kilpa
'įjungti išjungtas funkcijas ateityje
Su programa
.DisplayAlerts = Tiesa
.ScreenUpdating = Tiesa
Baigti su
Pabaigos sub
Paaiškintas VBA kodas
Pirmoji kodo dalis apibrėžia paprogramę, kurioje yra visas jūsų VBA kodas. Apibrėžkite paprogramę su sub, po kurio nurodomas kodo pavadinimas. Pavadinimas gali būti bet koks; Idealiu atveju turėtumėte išlaikyti pavadinimą, susijusį su kodu, kurį ruošiatės rašyti.
Susijęs: Svetainės ir tinklaraščiai, skirti išmokti „Excel“ patarimų ir gudrybių
„Excel VBA“ supranta vartotojo sukurtus kintamuosius ir atitinkamus jų duomenų tipus, deklaruotus naudojant pritemdyta (matmenys).
Norėdami padidinti kodo apdorojimo greitį, galite išjungti ekrano naujinimą ir nuslėpti visus įspėjimus, nes tai sulėtina kodo vykdymą.
Vartotojo bus paprašyta nurodyti aplanko, kuriame saugomi duomenų failai, kelią. Sukuriamas ciklas, skirtas atidaryti kiekvieną aplanke saugomą darbaknygę, nukopijuoti duomenis iš kiekvieno lapo ir pridėti juos prie Konsolidavimas darbo knyga.
Konsolidavimo darbaknygė suaktyvinama, kad „Excel VBA“ galėtų apskaičiuoti paskutinę užpildytą eilutę. Pasirinktas paskutinis darbalapio langelis, o paskutinė eilutė apskaičiuojama darbaknygėje naudojant poslinkio funkciją. Tai labai naudinga, kai makrokomanda pradeda pridėti duomenis iš šaltinio failų.
Kai ciklas atidaro pirmąjį šaltinio failą, filtrai pašalinami iš kiekvieno lapo (jei jie yra), o duomenys nuo A2 iki AZ20000 bus nukopijuoti ir įklijuoti į konsolidavimą. darbo knyga.
Procesas kartojamas tol, kol visi darbaknygės lapai bus įtraukti į pagrindinę darbaknygę.
Susijęs: Geriausi internetiniai „Excel“ tobulinimosi kursai
Galiausiai, kai visi duomenys įklijuojami, šaltinio failas uždaromas. Atidaroma kita darbaknygė, kad VBA makrokomanda galėtų pakartoti tuos pačius veiksmus kitam failų rinkiniui.
Ciklas užkoduotas veikti tol, kol visi failai bus automatiškai atnaujinti pagrindinėje darbaknygėje.
Vartotoju pagrįsti tinkinimai
Kartais nenorite jaudintis dėl integruotų raginimų, ypač jei esate galutinis vartotojas. Jei norite koduoti konsolidavimo aplanko kelią kode, galite pakeisti šią kodo dalį:
MyFolder = InputBox ("Įveskite konsolidavimo aplanko kelią") & "\"
Kam:
MyFolder = "Aplanko kelias" ir "\"
Be to, taip pat galite pakeisti stulpelių nuorodas, nes veiksmas neįtrauktas į šį kodą. Tiesiog pakeiskite pabaigos stulpelio nuorodą paskutine užpildyto stulpelio reikšme (šiuo atveju AZ). Turite atsiminti, kad paskutinė užpildyta eilutė apskaičiuojama naudojant makrokomandos kodą, todėl reikia keisti tik stulpelio nuorodą.
Norėdami išnaudoti visas šios makrokomandos galimybes, galite ją naudoti tik to paties formato darbaknygėms konsoliduoti. Jei struktūros skiriasi, šios VBA makrokomandos naudoti negalima.
Kelių darbaknygių konsolidavimas naudojant Excel VBA makrokomandą
Sukurti ir modifikuoti Excel VBA kodą yra gana lengva, ypač jei suprantate kai kuriuos kodo niuansus. VBA sistemingai eina per kiekvieną kodo eilutę ir vykdo ją eilutę po eilutės.
Jei atliekate kokių nors kodo pakeitimų, turite užtikrinti, kad nekeistumėte kodų eilės, nes tai sutrikdys kodo vykdymą.
Padarykite duomenų valdymą lengvu su šiomis „Excel“ makrokomandomis.
Skaitykite toliau
- Programavimas
- Programavimas
- Microsoft Excel
Gaurav Siyal turi dvejų metų rašymo patirtį, rašo skaitmeninės rinkodaros įmonėms ir programinės įrangos gyvavimo ciklo dokumentus.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!
Norėdami užsiprenumeruoti, spustelėkite čia