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ę.

instagram viewer

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 su

Pakeiskite 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). Pasirinkite

Atidarykite 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 lapuose

ws. Suaktyvinti
ws. AutoFilterMode = klaidinga

Nepaisykite antraštės ir nukopijuokite duomenis iš 2 eilutės
Jei langeliai (2, 1) = "" Tada eikite į 1

Eiti į 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ą.

5 Šaunios Microsoft Excel makrokomandos duomenims rūšiuoti

Padarykite duomenų valdymą lengvu su šiomis „Excel“ makrokomandomis.

Skaitykite toliau

DalintisTviteryjeEl. paštas
Susijusios temos
  • Programavimas
  • Programavimas
  • Microsoft Excel
Apie autorių
Gaurav Siyal (19 straipsnių paskelbta)

Gaurav Siyal turi dvejų metų rašymo patirtį, rašo skaitmeninės rinkodaros įmonėms ir programinės įrangos gyvavimo ciklo dokumentus.

Daugiau iš Gaurav Siyal

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