Excel VBA on Exceli automatiseerimise lahutamatu osa ning VBA kasutust ja eeliseid ei saa kahjustada. Kui proovite Excelis koondada mitu lehte ja töövihikut ülesmäge, oleme siin, et aidata.

Selles juhendis mainitud makrod aitavad teil ületamatuna näiva ülesande täita mõne sekundiga (või minutitega, kui andmevarad on suured).

Seda õpetust järgides saate luua Excelis oma VBA makro ja liita mitu lehte tõhusalt üheks failiks.

Mitme Exceli lehe ühendamine üheks failiks

Selle ülesande jaoks salvestatakse andmed järgmistele lehtedele:

  • Leht1
  • Leht2
  • Leht3

Eespool loetletud lehtede nimed on illustratiivsed. See VBA makro on üldine ega sõltu lehtede nimedest; saate koodi kohandada, et seda kasutada mis tahes lehe nime(de)ga.

Koodi käitamise eeltingimused

Allpool loetletud VBA-koodi käitamiseks on mõned eeltingimused.

Peate makrokoodi salvestama uude Exceli faili. Salvestage see töövihik a-ga .xlsm pikendamine. Saate salvestada VBA makro töövihiku mis tahes nimega.

Avage uus Exceli fail; vajutage Alt + F11

instagram viewer
klaviatuuril, et avada Exceli VBA redaktor. Kui redaktor avaneb, lisage uus koodimoodul, klõpsates nuppu Sisesta vahekaart ülaosas. Valige Moodul uue mooduli sisestamiseks; siia sisestate allpool toodud VBA makrokoodi.

Koondatavad andmelehed peaksid olema teises eraldi töövihikus. Töövihiku ja lehtede nimi võib olla ükskõik, mille valite.

Niipea kui käivitate VBA-koodi, liigub VBA-makro tsükliga läbi iga saadaoleva töölehe esmane töövihik (andmete töövihik) ja kleepige selle sisu äsja lisatud lehele töövihik.

Konsolideeritud andmed on saadaval lehel nimega Konsolideeritud.

VBA koodi käivitamine

On aeg käivitada äsja salvestatud makrokood. Kopeerige ja kleepige see kood VBA redaktori moodulisse:

Sub consolidate_shts()
'deklareerige erinevad koodis kasutatavad muutujad ja vba andmetüübid
Dim sht töölehena, sht1 töölehena, viimane rida täisarvuna, viimane rida1 täisarvuna
"Keela ekraani värelus ja hoiatuse hüpikaknad täitmise ajal
Koos rakendusega
.ScreenUpdating = Vale
.DisplayAlerts = Vale
Lõpeta
'salvestage peamise töövihiku nimi makromuutujas. Asendage Test.xlsx oma peamise töövihiku nimega
Set wbk1 = töövihikud ("Test.xlsx")
'aktiveerige töövihik enne selle funktsiooni(de) täitmist
wbk1.Aktiveeri
Käivitage vba for tsükkel, et kontrollida, kas konsolideeritud leht on juba olemas. Kui see on olemas, kustutab tsükkel for selle.
Iga sht jaoks jaotises wbk1.Sheets
Kui sht. Nimi = "Konsolideeritud" Seejärel sht. Kustuta
Järgmine sht
Lisage äsja konsolideeritud andmete salvestamiseks uus leht
Töölehed. Lisama. Nimi = "Konsolideeritud"
Lisage koondlehe igasse veergu mõned päised
Arvutustabelitega ("Konsolideeritud")
.Range("a1").Väärtus = "Tellimuse kuupäev"
.Range("b1").Väärtus = "Piirkond"
.Range("c1").Väärtus = "Rep"
.Range("d1").Väärtus = "Üksus"
.Range("e1").Väärtus = "ühikud"
.Range("f1").Value = "UnitCost"
.Range("g1").Väärtus = "Kokku"

Lõpeta
"Äsja loodud konsolideeritud leht sisaldab iga üksiku lehe koondandmeid esmases töövihikus

Kui i = 1 To wbk1.Worksheets. Count
Kui Sheets (i).Nimi <> "Konsolideeritud" Siis
'Püüdke töövihiku andmelehtedelt viimane täidetud rida
lastrow = Lehed (i). Vahemik ("a1"). Lõpp (xlDown).Rida
Jäädvustage koondlehe viimane täidetud rida
lastrow1 = wbk1.Sheets("Konsolideeritud"). Vahemik("a1048576").Lõpp (xlUp).Rida + 1

„Kopeerige andmed lähtelehelt ja kleepige need koondlehele
Sheets (i).Range("a2:g" & lastrow). Copy Destination:=Sheets("Consolidated").Range("a" & lastrow1)
Lõpeta Kui
Järgmine i
Lubage Exceli VBA funktsioonid edaspidiseks kasutamiseks
Koos rakendusega
.ScreenUpdating = Tõene
.DisplayAlerts = Tõene
Lõpeta

Lõpeta alam

VBA koodi selgitus

Esiteks deklareerige kõik koodis kasutatavad muutujad ja määrake neile õiged VBA andmetüübid, et kood töötaks sujuvalt.

Kui olete muutujad deklareerinud, on vaja mõnda elementaarset majapidamist. Selleks keelatakse ekraani virvendus ja hüpikakende hoiatused. Näiteks kui kustutate olemasoleva lehe VBA-koodi abil, küsib Excelis olev viip enne lehe kustutamist kinnitust. Sellised viibad suletakse täitmise kiiruse suurendamiseks.

Järgmises etapis peate määratlema töövihiku nime, mis sisaldab kõiki teie andmeid. Asenda Test.xlsx töövihiku nime ja laiendiga. Ümbritsege nimi kindlasti jutumärkidega.

Aktiveerige esmane töövihik ja kustutage kõik olemasolevad nimega lehed Konsolideeritud eelnevalt salvestatud andmete eemaldamiseks. VBA-kood lülitub igal lehel ja niipea, kui see kohtab lehe nime Konsolideeritud see kustutab selle. Seda tehakse kasutades VBA IF avaldus, mis kontrollib loogilisi tingimusi ja kustutab lehe kohe, kui tingimus on täidetud.

Konsolideeritud andmete salvestamiseks lisatakse esmasele töövihikule uus leht. Seejärel lisatakse sellele lehele eelvormindatud standardsed päised. Pealkirjade (veerupäiste) väärtusi saate muuta, värskendades jutumärkides olevate lahtriviidete kõrval olevat teavet.

Näiteks: .Range("a1") = "Tellimise kuupäev" saab asendada .Range("a1") = "Tellimisnumber"

Järgmisena lülitub VBA FOR tsükkel läbi iga töölehe, kopeerib lehe sisu ja kleebib selle sisu Konsolideeritud enne töövihiku järgmisele lehele liikumist. Seda protsessi korratakse, kuni kõik lehed on üle kopeeritud.

Selle protsessi käigus arvutatakse kõik read automaatselt ja kleebitakse konsolideeritud lehele. Viimane täidetud rida arvutatakse automaatselt enne andmete kleepimist. Makro on dünaamiline ja seda saab kohandada iga töölehe erinevate andmeridadega.

Seotud: Microsoft Exceli täiustatud funktsioonid, mida peate teadma

Kui kõigi lehtede andmed on kleebitud peamisele konsolideerimislehele, liigub makro koodi viimasele osale. Algselt keelatud VBA funktsioonid lubatakse edaspidiseks kasutamiseks uuesti.

Mitme lehe konsolideerimine Exceli VBA makro abil

Excel VBA on üleliigne programmeerimiskeel, mis töötab hästi kõigi Exceli komponentidega. Iga koodiosa on oluline ja on oluline meeles pidada, et täitmine sõltub ridade kaupa käitamissüsteemist, seega ei tohiks te koodiridade järjekorda muuta.

Koodi kohandamiseks vastavalt oma vajadustele saate teha vajalikud muudatused ja käivitada selle koodi, et konsolideerida andmed tõhusalt ja tulemuslikult mõne sekundiga.

5 lahedat Microsoft Exceli makrot andmete sortimiseks

Muutke andmehaldus nende Exceli makrode abil imelihtsaks.

Loe edasi

JagaSäutsMeil
Seotud teemad
  • Programmeerimine
  • Microsoft Excel
  • Makrod
  • Programmeerimine
Autori kohta
Gaurav Siyal (Avaldatud 21 artiklit)

Gaurav Siyal on kaheaastane kirjutamiskogemus, kirjutades mitmetele digitaalse turunduse ettevõtetele ja tarkvara elutsükli dokumentidele.

Rohkem Gaurav Siyalist

Liituge meie uudiskirjaga

Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!

Tellimiseks klõpsake siin