„Excel VBA“ yra neatsiejama „Excel“ automatizavimo dalis, todėl negalima sumenkinti VBA naudojimo ir privalumų. Jei kovojate į kalną bandydami sujungti kelis lapus ir darbaknyges programoje „Excel“, esame čia, kad padėtume.

Šiame vadove paminėtos makrokomandos padės atlikti, atrodo, neįveikiamą užduotį per kelias sekundes (arba minutes, jei duomenų ištekliai yra dideli).

Vykdydami šią mokymo programą sukursite savo VBA makrokomandą programoje „Excel“ ir efektyviai sujungsite kelis lapus į vieną failą.

Kelių „Excel“ lapų sujungimas į vieną failą

Šios užduoties duomenys saugomi šiuose lapuose:

  • 1 lapas
  • 2 lapas
  • 3 lapas

Aukščiau išvardyti lapų pavadinimai yra tik iliustravimo tikslais. Ši VBA makrokomanda yra bendra ir nepriklauso nuo lapų pavadinimų; galite tinkinti kodą ir naudoti jį su bet kokiu lapo pavadinimu (-iais).

Būtinos sąlygos norint paleisti kodą

Yra keletas prielaidų, reikalingų toliau išvardytam VBA kodui paleisti.

Makrokomandos kodą turite išsaugoti naujame „Excel“ faile. Išsaugokite šią darbaknygę naudodami a

instagram viewer
.xlsm pratęsimas. Galite įrašyti VBA makrokomandos darbaknygę bet kokiu pavadinimu.

Atidarykite naują Excel failą; paspauskite Alt + F11 klaviatūroje, kad atidarytumėte „Excel VBA“ rengyklę. Atsidarius redaktoriui, pridėkite naują kodo modulį spustelėdami Įdėti skirtukas viršuje. Pasirinkite Modulis įterpti naują modulį; čia turėsite įvesti toliau pateiktą VBA makrokomandos kodą.

Konsoliduotini duomenų lapai turėtų būti iš viso kitoje atskiroje darbaknygėje. Darbaknygės ir lapų pavadinimas gali būti bet koks, kurį pasirinksite.

Kai tik vykdysite VBA kodą, VBA makrokomanda peržiūrės kiekvieną galimą darbalapį pagrindinę darbaknygę (duomenų darbaknygę) ir įklijuokite turinį į naujai pridėtą lapą darbo knyga.

Suvestiniai duomenys bus prieinami lape pavadinimu Konsoliduota.

Vykdykite VBA kodą

Atėjo laikas paleisti naujai išsaugotą makrokomandos kodą. Nukopijuokite ir įklijuokite šį kodą į VBA redaktoriaus modulį:

Sub consolidate_shts()
'pareikškite įvairius kode naudojamus kintamuosius ir vba duomenų tipus
Dim sht kaip darbalapis, sht1 kaip darbalapis, paskutinė eilutė kaip sveikasis skaičius, paskutinė eilutė1 kaip sveikasis skaičius
„vykdymo metu išjungti ekrano mirgėjimą ir įspėjimų iššokančiuosius langus
Su programa
.ScreenUpdating = Netiesa
.DisplayAlerts = Netiesa
Baigti su
Išsaugokite pagrindinės darbaknygės pavadinimą makrokomandos kintamajame. Pakeiskite Test.xlsx pirminės darbaknygės pavadinimu
Nustatyti wbk1 = darbaknygės ("Test.xlsx")
„Suaktyvinkite darbaknygę prieš atlikdami joje funkciją (-as).
wbk1.Suaktyvinti
Paleiskite vba for ciklą, kad patikrintumėte, ar konsoliduotas lapas jau egzistuoja. Jei jis yra, ciklas for jį ištrins.
Kiekvienam sht Wbk1.Sheets
Jei sht. Vardas = "Konsoliduotas" Tada sht. Ištrinti
Kitas sht
„Pridėkite naują lapą, kad išsaugotumėte naujai konsoliduotus duomenis
Darbo lapai. Papildyti. Pavadinimas = "Konsoliduota"
„Pridėkite keletą antraščių prie kiekvieno atskiro konsoliduoto lapo stulpelio
Su Skaičiuoklės ("Konsoliduota")
.Range("a1").Value = "Užsakymo data"
.Range("b1").Value = "Regionas"
.Range("c1").Value = "Rep"
.Range("d1").Value = "Prekė"
.Range("e1").Value = "Vienetai"
.Range("f1").Value = "UnitCost"
.Ringe("g1").Value = "Iš viso"

Baigti su
Naujai sukurtame konsoliduotame lape bus saugomi konsoliduoti duomenys iš kiekvieno atskiro lapo pirminėje darbaknygėje

Jei i = 1 To wbk1.Worksheets. Suskaičiuoti
Jei Lapai (i).Pavadinimas <> „Sujungta“ Tada
„Užfiksuokite paskutinę užpildytą eilutę iš darbaknygės duomenų lapų
paskutinė eilutė = Lapai (i). Diapazonas ("a1"). Pabaiga (xlDown).Eilutė
„Užfiksuokite paskutinę užpildytą eilutę konsoliduotame lape
lastrow1 = wbk1.Sheets("Sujungtas").Dipazonas("a1048576").Pabaiga (xlUp).Eilutė + 1

„Nukopijuokite duomenis iš šaltinio lapo ir įklijuokite juos į konsoliduotą lapą
Lapai (i).Range("a2:g" & lastrow).Kopijuoti Destination:=Sheets("Consolidated").Range("a" & lastrow1)
Pabaiga, jei
Toliau i
Įgalinkite Excel VBA funkcijas, kad galėtumėte naudoti ateityje
Su programa
.ScreenUpdating = Tiesa
.DisplayAlerts = Tiesa
Baigti su

Pabaigos sub

Paaiškintas VBA kodas

Pirmiausia deklaruokite visus kode naudojamus kintamuosius ir priskirkite jiems tinkamus VBA duomenų tipus, kad kodas veiktų sklandžiai.

Kai deklaruosite kintamuosius, reikės atlikti pagrindinius namų ruošos darbus. Tai atliekama išjungiant ekrano mirgėjimą ir iššokančius įspėjimus. Pavyzdžiui, kai ištrinate esamą lapą naudodami VBA kodą, „Excel“ raginimas prieš ištrinant lapą prašo patvirtinimo. Tokie raginimai slopinami siekiant pagreitinti vykdymo greitį.

Kitame veiksme turite apibrėžti darbaknygės pavadinimą, kuriame yra visi jūsų duomenys. Pakeiskite Test.xlsx su darbaknygės pavadinimo pavadinimu ir plėtiniu. Įsitikinkite, kad pavadinimą aprašykite kabutėmis.

Suaktyvinkite pirminę darbaknygę ir ištrinkite visus esamus lapus su pavadinimu Konsoliduota pašalinti visus anksčiau saugomus duomenis. VBA kodas persijungia per kiekvieną lapą ir kai tik jis susiduria su lapo pavadinimu Konsoliduota tai ištrins. Tai atliekama naudojant VBA IF pareiškimas, kuri patikrina, ar nėra loginių sąlygų, ir ištrina lapą, kai tik sąlyga įvykdoma.

Į pirminę darbaknygę įtraukiamas naujas lapas, kuriame saugomi konsoliduoti duomenys. Vėliau prie šio lapo pridedamos iš anksto suformatuotos, standartizuotos antraštės. Galite pakeisti pavadinimų (stulpelių antraščių) reikšmes atnaujindami informaciją, esančią šalia langelių nuorodų kabutėse.

Pavyzdžiui: .Range("a1") = "Užsakymo data" galima pakeisti į .Range("a1") = "UžsakymoNumber"

Tada VBA FOR ciklas perjungia kiekvieną darbalapį, nukopijuoja lapo turinį ir įklijuoja turinį į Konsoliduota darbalapį prieš pereinant prie kito darbaknygės lapo. Šis procesas kartojamas tol, kol bus nukopijuoti visi lapai.

Šio proceso metu visos eilutės apskaičiuojamos automatiškai ir įklijuojamos į konsoliduotąjį lapą. Paskutinė užpildyta eilutė automatiškai apskaičiuojama prieš įklijuojant duomenis. Makrokomandas yra dinamiškas ir gali prisitaikyti prie skirtingų duomenų eilučių kiekviename darbalapyje.

Susijęs: Išplėstinės „Microsoft Excel“ funkcijos, kurias turite žinoti

Kai duomenys iš visų lapų įklijuojami į pagrindinį konsolidavimo lapą, makrokomanda perkeliama į paskutinę kodo dalį. Iš pradžių išjungtos VBA funkcijos vėl įjungiamos, kad būtų galima naudoti ateityje.

Kelių lapų konsolidavimas naudojant Excel VBA makrokomandą

Excel VBA yra perteklinė programavimo kalba, kuri puikiai veikia su visais Excel komponentais. Kiekviena kodo dalis yra būtina, todėl svarbu atsiminti, kad vykdymas priklauso nuo eilučių vykdymo sistemos, todėl neturėtumėte keisti kodo eilučių tvarkos.

Norėdami pritaikyti kodą pagal savo poreikius, galite atlikti reikiamus pakeitimus ir paleisti šį kodą, kad efektyviai ir efektyviai konsoliduotumėte duomenis per kelias sekundes.

5 Šaunios Microsoft Excel makrokomandos duomenims rūšiuoti

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

Skaitykite toliau

DalintisTviteryjeEl. paštas
Susijusios temos
  • Programavimas
  • Microsoft Excel
  • Makrokomandos
  • Programavimas
Apie autorių
Gaurav Siyal (Paskelbtas 21 straipsnis)

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