Excel VBA sastavni je dio automatizacije programa Excel, a korištenje i prednosti VBA-a ne mogu se potkopati. Ako ste u teškoj borbi pokušavajući objediniti više listova i radnih knjiga u Excelu, mi smo tu da vam pomognemo.
Makronaredbe koje se spominju u ovom vodiču pomoći će vam da postignete naizgled nepremostiv zadatak u nekoliko sekundi (ili minuta, ako su podaci veliki).
Slijedeći ovaj vodič, stvorit ćete vlastitu VBA makronaredbu u Excelu i učinkovito spojiti više listova u jednu datoteku.
Spajanje više Excel listova u jednu datoteku
Za ovaj zadatak, podaci se pohranjuju u sljedeće listove:
- List 1
- List 2
- List3
Gore navedeni nazivi listova služe samo u svrhu ilustracije. Ova VBA makronaredba je generička i ne ovisi o nazivima listova; možete prilagoditi kod kako biste ga koristili s bilo kojim imenom(ovima) lista.
Preduvjeti za pokretanje koda
Postoje neki preduvjeti za pokretanje VBA koda koji su navedeni u nastavku.
Morate pohraniti makro kod u novu Excel datoteku. Spremite ovu radnu bilježnicu s a
.xlsm proširenje. Radnu knjigu VBA makronaredbi možete spremiti pod bilo kojim imenom.Otvorite novu Excel datoteku; pritisnite Alt + F11 na tipkovnici da otvorite Excel VBA uređivač. Kada se otvori uređivač, dodajte novi modul koda klikom na Umetnuti kartica na vrhu. Izaberi Modul za umetanje novog modula; ovdje ćete unijeti VBA makro kod naveden u nastavku.
Podaci koji se objedinjuju trebaju se nalaziti u drugoj zasebnoj radnoj knjizi. Naziv radne knjige i listova može biti kako god odaberete.
Čim izvršite VBA kod, VBA makronaredba će kružiti kroz svaki dostupni radni list u primarna radna knjiga (radna knjiga s podacima) i zalijepite sadržaj u novododani list unutar iste radna bilježnica.
Konsolidirani podaci bit će dostupni u listu pod nazivom Konsolidirano.
Pokretanje VBA koda
Vrijeme je za pokretanje novospremljenog koda makronaredbe. Kopirajte i zalijepite ovaj kod u modul VBA editora:
Sub consolidate_shts()
'deklarirati različite varijable koje se koriste unutar koda i vba tipova podataka
Dim sht kao radni list, sht1 kao radni list, posljednji kao cijeli broj, posljednji kao cijeli broj
'onemogućite treperenje zaslona i skočne prozore upozorenja tijekom izvršavanja
Uz aplikaciju
.Ažuriranje zaslona = Netočno
.DisplayAlerts = False
Završi s
'spremite naziv primarne radne knjige u makro varijablu. Zamijenite Test.xlsx imenom svoje primarne radne knjige
Postavi wbk1 = Radne knjige("Test.xlsx")
'aktivirajte radnu knjigu prije obavljanja funkcije (e) na njoj
wbk1.Aktiviraj
'pokrenite vba for petlju da provjerite postoji li list Consolidated. Ako postoji, for petlja će ga izbrisati.
Za svaki sht U wbk1.Listovi
Ako sht. Naziv = "Konsolidirano" Zatim sht. Izbrisati
Sljedeći sht
'Dodajte novi list za pohranu novokonsolidiranih podataka
Radni listovi. Dodati. Naziv = "Konsolidirano"
'Dodajte neka zaglavlja u svaki pojedinačni stupac unutar konsolidiranog lista
S listovima ("Konsolidirano")
.Raspon("a1").Vrijednost = "Datum narudžbe"
.Range("b1").Vrijednost = "Regija"
.Range("c1").Vrijednost = "Rep"
.Raspon("d1").Vrijednost = "Stavka"
.Raspon("e1").Vrijednost = "Jedinice"
.Raspon("f1").Vrijednost = "jedinični trošak"
.Raspon("g1").Vrijednost = "Ukupno"Završi s
'Novo stvoreni konsolidirani list sadržavat će konsolidirane podatke iz svakog pojedinačnog lista u primarnoj radnoj knjiziZa i = 1 To wbk1.Radni listovi. Računati
Ako listovi (i).Naziv <> "Konsolidirani" Zatim
'Uhvatite zadnji popunjeni redak iz podatkovnih listova u radnoj knjizi
zadnji niz = Listovi (i).Raspon("a1").Kraj (xlDown).Red
'Snimi posljednji popunjeni redak na Konsolidiranom listu
lastrow1 = wbk1.Sheets("Consolidated").Range("a1048576").Kraj (xlUp).Row + 1'Kopirajte podatke iz izvornog lista i zalijepite ih u konsolidirani list
Sheets (i).Range("a2:g" & lastrow).Copy Destination:=Sheets("Consolidated").Range("a" & lastrow1)
Završi ako
Sljedeći i
'Omogućite funkcije Excel VBA za buduću upotrebu
Uz aplikaciju
.Ažuriranje zaslona = Točno
.DisplayAlerts = Točno
Završi s
Kraj Sub
Objašnjenje VBA koda
Prvo, deklarirajte sve varijable koje koristite unutar koda i dodijelite im ispravne VBA tipove podataka kako bi kod radio bez problema.
Nakon što deklarirate varijable, potrebno je nešto osnovnog održavanja. To se postiže onemogućavanjem treperenja zaslona i suzbijanjem skočnih upozorenja. Na primjer, kada izbrišete postojeći list pomoću VBA koda, prompt unutar Excela traži potvrdu prije brisanja lista. Ovakvi upiti su potisnuti kako bi se povećala brzina izvršenja.
U sljedećem koraku morate definirati naziv radne knjige koji sadrži sve vaše podatke. Zamijeniti Test.xlsx s nazivom i ekstenzijom naziva vaše radne knjige. Obavezno okružite ime navodnicima.
Aktivirajte primarnu radnu knjigu i izbrišite sve postojeće listove s imenom Konsolidirano kako biste uklonili sve prethodno pohranjene podatke. VBA kod prelazi kroz svaki list i čim naiđe na naziv lista Konsolidirano izbrisat će ga. To se radi pomoću VBA IF izjava, koji provjerava logičke uvjete i briše list čim se uvjet ispuni.
Primarnoj radnoj knjizi dodaje se novi list za pohranu konsolidiranih podataka. Nakon toga, ovom listu se dodaju unaprijed formatirana, standardizirana zaglavlja. Možete promijeniti vrijednosti naslova (zaglavlja stupaca) ažuriranjem informacija pored referenci ćelija unutar navodnika.
Na primjer: .Raspon("a1") = "Datum narudžbe" može se zamijeniti sa .Raspon("a1") = "Broj narudžbe"
Zatim, petlja VBA FOR prelazi kroz svaki radni list, kopira sadržaj lista i lijepi sadržaj u Konsolidirano radni list prije prelaska na sljedeći list u radnoj knjizi. Ovaj se postupak ponavlja dok se svi listovi ne kopiraju.
Tijekom ovog procesa svi se reci automatski izračunavaju i lijepe u Konsolidirani list. Zadnji popunjeni redak se automatski izračunava prije nego što se podaci zalijepe. Makro je dinamična i može se prilagoditi različitim recima podataka unutar svakog radnog lista.
Povezano: Napredne značajke Microsoft Excela koje morate znati
Nakon što su podaci iz svih listova zalijepljeni u glavni konsolidacijski list, makronaredba se pomiče na završnu dionicu koda. VBA funkcije koje su prvobitno onemogućene ponovno su omogućene za buduću upotrebu.
Objedinjavanje više listova pomoću Excel VBA makronaredbe
Excel VBA je suvišan programski jezik, koji dobro radi sa svim komponentama programa Excel. Svaki dio koda je bitan i važno je zapamtiti da izvršenje ovisi o sustavu izvršavanja redak po red, tako da ne biste trebali mijenjati redoslijed redova koda.
Da biste prilagodili kôd svojim zahtjevima, možete izvršiti potrebne promjene i pokrenuti ovaj kod za učinkovitu i učinkovitu konsolidaciju podataka u nekoliko sekundi.
Učinite upravljanje podacima jednostavnim uz ove Excel makronaredbe.
Pročitajte dalje
- Programiranje
- Microsoft Excel
- Makronaredbe
- Programiranje
Gaurav Siyal ima dvije godine iskustva pisanja, pisanja za niz tvrtki za digitalni marketing i dokumenata o životnom ciklusu softvera.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Kliknite ovdje za pretplatu