Az Excel VBA az Excel automatizálásának szerves része, és a VBA használatát és előnyeit nem lehet aláásni. Ha felfelé küzd, amikor több lapot és munkafüzetet szeretne összevonni az Excelben, itt vagyunk, hogy segítsünk.
Az ebben az útmutatóban említett makrók segítségével pillanatok alatt (vagy percek alatt, ha nagy az adatvagyon) végrehajtani a megoldhatatlannak tűnő feladatot.
Az oktatóanyag követésével létrehozhatja saját VBA-makróját az Excelben, és hatékonyan egyesíthet több lapot egyetlen fájlba.
Több Excel munkalap egyesítése egy fájlba
Ehhez a feladathoz az adatokat a következő lapokon tároljuk:
- 1. lap
- 2. lap
- 3. lap
A fent felsorolt lapnevek csak illusztrációk. Ez a VBA makró általános, és nem függ a lapnevektől; testreszabhatja a kódot, hogy bármilyen lapnévvel (nevekkel) használhassa.
A kód futtatásának előfeltételei
Az alábbiakban felsorolt VBA-kód futtatásához van néhány előfeltétel.
A makrókódot egy új Excel-fájlban kell tárolnia. Mentse ezt a munkafüzetet a .xlsm kiterjesztés. A VBA makró munkafüzetet bármilyen néven mentheti.
Nyisson meg egy új Excel-fájlt; nyomja meg Alt + F11 a billentyűzeten az Excel VBA szerkesztő megnyitásához. A szerkesztő megnyitása után adjon hozzá egy új kódmodult a gombra kattintva Beszúrás lap tetején. Válassza ki Modul új modul beillesztéséhez; ide kell beírnia az alább megadott VBA makrókódot.
Az összevonandó adatlapok egy másik külön munkafüzetben legyenek. A munkafüzet és a lapok neve tetszőleges lehet.
Amint végrehajtja a VBA kódot, a VBA makró végigfut minden elérhető munkalapon a elsődleges munkafüzet (adat-munkafüzet), és illessze be a tartalmát egy újonnan hozzáadott lapra munkafüzet.
Az összevont adatok a megnevezett lapon lesznek elérhetők Összevont.
A VBA kód futtatása
Ideje futtatni az újonnan mentett makrókódot. Másolja be ezt a kódot a VBA szerkesztő moduljába:
Sub consolidate_shts()
'deklarálja a kódon belül használt különféle változókat és a vba adattípusokat
Dim sht munkalapként, sht1 munkalapként, utolsó sor egész számként, utolsó sor1 egész szám
„letiltja a képernyő villogását és figyelmezteti a felugró ablakokat a végrehajtás során
Alkalmazással
.ScreenUpdating = Hamis
.DisplayAlerts = Hamis
Vége ezzel
'tárolja az elsődleges munkafüzet nevét a makróváltozóban. Cserélje le a Test.xlsx fájlt az elsődleges munkafüzet nevére
Set wbk1 = Munkafüzetek ("Teszt.xlsx")
'aktiválja a munkafüzetet, mielõtt végrehajtaná rajta a funkció(ka)t
wbk1.Aktiválás
'futtasson egy vba for ciklust, hogy ellenőrizze, létezik-e már konszolidált lap. Ha létezik, a for ciklus törli.
Minden egyes sht-hez A wbk1.Sheetsben
Ha sht. Név = "Konszolidált" Majd sht. Töröl
Következő sht
„Adjon hozzá egy új lapot az újonnan konszolidált adatok tárolásához
Munkalapok. Hozzáadás. Név = "konszolidált"
„Adjon hozzá néhány fejlécet az egyesített lap minden egyes oszlopához
Táblázatokkal ("konszolidált")
.Tartomány("a1").Érték = "Rendelés dátuma"
.Tartomány("b1").Érték = "Régió"
.Tartomány("c1").Érték = "Rep"
.Tartomány("d1").Érték = "Elem"
.Tartomány("e1").Érték = "Egységek"
.Tartomány("f1").Érték = "Egységköltség"
.Tartomány("g1").Érték = "Összesen"Vége ezzel
"Az újonnan létrehozott, összevont lap az egyes lapok egyesített adatait fogja tárolni az elsődleges munkafüzetbenFor i = 1 To wbk1.Worksheets. Számol
Ha a Sheets (i).Név <> „Összevont” Akkor
'Rögzítse az utolsó kitöltött sort a munkafüzet adatlapjairól
lastrow = Lapok (i).Tartomány("a1").End (xlDown).Sor
'Az összevont munkalap utolsó kitöltött sorának rögzítése
lastrow1 = wbk1.Sheets("Consolidated").Tartomány("a1048576").End (xlUp).Sor + 1Másolja az adatokat a forráslapról, és illessze be az összevont lapba
Sheets (i).Tartomány("a2:g" & lastrow).Cél másolása:=Sheets("Consolidated").Tartomány("a" & lastrow1)
Vége Ha
Következő i
„Engedélyezze az Excel VBA funkcióit a jövőbeni használatra
Alkalmazással
.ScreenUpdating = Igaz
.DisplayAlerts = Igaz
Vége ezzel
Vége Sub
A VBA kód magyarázata
Először deklarálja a kódon belül használt összes változót, és rendelje hozzá őket a megfelelő VBA-adattípusokhoz, hogy a kód zökkenőmentesen futhasson.
A változók deklarálása után néhány alapvető takarításra van szükség. Ez a képernyő villogásának letiltásával és a felugró figyelmeztetések letiltásával történik. Például, ha VBA-kóddal töröl egy meglévő lapot, az Excelben egy felszólítás megerősítést kér a munkalap törlése előtt. Az ehhez hasonló promptokat a rendszer elnyomja a végrehajtás sebességének növelése érdekében.
A következő lépésben meg kell adnia a munkafüzet nevét, amely az összes adatot tartalmazza. Cserélje ki Teszt.xlsx a munkafüzet nevével és kiterjesztésével. Ügyeljen arra, hogy a nevet idézőjelekkel vegye körül.
Aktiválja az elsődleges munkafüzetet, és törölje a névvel rendelkező meglévő lapokat Összevont a korábban tárolt adatok eltávolításához. A VBA-kód minden lapon átvált, és amint találkozik a lap nevével Összevont törli. Ez a VBA IF utasítás, amely ellenőrzi a logikai feltételeket, és azonnal törli a lapot, amint a feltétel teljesül.
Új munkalap kerül az elsődleges munkafüzetbe az összevont adatok tárolására. Ezt követően előre formázott, szabványosított fejlécek kerülnek hozzáadásra ehhez a laphoz. Módosíthatja a címek (oszlopfejlécek) értékeit az idézőjelekben lévő cellahivatkozások melletti információk frissítésével.
Például: .Range("a1") = "Rendelés dátuma" -vel helyettesíthető .Range("a1") = "Rendelési szám"
Ezután egy VBA FOR ciklus átvált minden munkalapon, lemásolja a lap tartalmát, és beilleszti a Összevont munkalapot, mielőtt a munkafüzet következő lapjára lépne. Ez a folyamat addig ismétlődik, amíg az összes lapot át nem másolja.
A folyamat során az összes sor automatikusan kiszámításra kerül, és beillesztésre kerül az Összevont lapra. Az adatok beillesztése előtt az utoljára kitöltött sor automatikusan kiszámításra kerül. A makró dinamikus, és az egyes munkalapokon belül változó adatsorokhoz tud igazodni.
Összefüggő: A Microsoft Excel speciális funkciói, amelyeket ismernie kell
Miután az összes lap adatait beillesztették a fő konszolidációs lapra, a makró a kód utolsó szakaszába kerül. Az eredetileg letiltott VBA-funkciók későbbi felhasználás céljából ismét engedélyezve vannak.
Több munkalap konszolidálása Excel VBA makró használatával
Az Excel VBA egy felesleges programozási nyelv, amely minden Excel összetevővel jól működik. A kód minden egyes része nélkülözhetetlen, és nem szabad elfelejteni, hogy a végrehajtás soronkénti végrehajtási rendszertől függ, ezért nem szabad megváltoztatni a kódsorok sorrendjét.
A kód igényeinek megfelelő testreszabásához végrehajthatja a szükséges módosításokat, és futtathatja ezt a kódot, hogy másodpercek alatt hatékonyan és eredményesen konszolidálja az adatokat.
Tegye gyerekjátékká az adatkezelést ezekkel az Excel makróval.
Olvassa el a következőt
- Programozás
- Microsoft Excel
- Makrók
- Programozás
Gaurav Siyal két éves írási tapasztalattal rendelkezik, számos digitális marketingcégnek ír és szoftver-életciklus-dokumentumokat írt.
Iratkozzon fel hírlevelünkre
Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!
Kattintson ide az előfizetéshez