Excel VBA je sestavni del avtomatizacije Excela in uporabe in prednosti VBA ni mogoče spodkopati. Če ste v težki bitki, ko poskušate združiti več listov in delovnih zvezkov v Excelu, smo tukaj, da vam pomagamo.

Makri, omenjeni v tem priročniku, vam bodo pomagali doseči na videz nepremostljivo nalogo v nekaj sekundah (ali minutah, če so podatkovna sredstva velika).

Če sledite tej vadnici, boste v Excelu ustvarili svoj makro VBA in učinkovito združili več listov v eno samo datoteko.

Združitev več listov Excela v eno datoteko

Za to nalogo so podatki shranjeni na naslednjih listih:

  • List 1
  • List2
  • List3

Zgoraj navedena imena listov so samo za ilustracijo. Ta makro VBA je splošen in ni odvisen od imen listov; kodo lahko prilagodite tako, da jo uporabite s katerim koli imenom(-i) lista.

Predpogoji za izvajanje kode

Spodaj je nekaj predpogojev za izvajanje kode VBA.

Kodo makra morate shraniti v novo datoteko Excel. Shranite ta delovni zvezek z a .xlsm razširitev. Delovni zvezek makra VBA lahko shranite s katerim koli imenom.

instagram viewer

Odprite novo datoteko Excel; pritisnite Alt + F11 na tipkovnici, da odprete urejevalnik Excel VBA. Ko se urejevalnik odpre, dodajte nov kodni modul s klikom na Vstavi zavihek na vrhu. Izberite Modul vstaviti nov modul; tu boste vnesli kodo makra VBA, ki je navedena spodaj.

Podatkovni listi, ki jih je treba združiti, bi morali biti v celoti v drugem ločenem delovnem zvezku. Ime delovnega zvezka in listov je lahko poljubno.

Takoj, ko izvedete kodo VBA, bo makro VBA krožil po vsakem razpoložljivem delovnem listu v primarni delovni zvezek (podatkovni delovni zvezek) in prilepite vsebino v na novo dodan list znotraj istega delovni zvezek.

Konsolidirani podatki bodo na voljo v listu z imenom Konsolidirano.

Zagon kode VBA

Čas je, da zaženete novo shranjeno kodo makra. Kopirajte in prilepite to kodo v modul urejevalnika VBA:

Sub consolidate_shts()
'razglasite različne spremenljivke, uporabljene znotraj kode in podatkovnih tipov vba
Dim sht kot delovni list, sht1 kot delovni list, zadnja kot celo število, zadnja vrstica1 kot celo število
'onemogoči utripanje zaslona in pojavna opozorila med izvajanjem
Z aplikacijo
.ScreenUpdating = False
.DisplayAlerts = False
Končaj z
'shrani ime primarnega delovnega zvezka v spremenljivko makra. Zamenjajte Test.xlsx z imenom svojega primarnega delovnega zvezka
Nastavi wbk1 = Delovni zvezki ("Test.xlsx")
'aktivirajte delovni zvezek, preden izvedete funkcijo(-e) na njem
wbk1.Aktiviraj
'zaženite zanko vba for, da preverite, ali list Consolidated že obstaja. Če obstaja, ga bo zanka for izbrisala.
Za vsak sht V wbk1.Lesti
Če sht. Ime = "Konsolidirano" Nato sht. Izbriši
Naslednji sht
»Dodajte nov list za shranjevanje na novo konsolidiranih podatkov
Delovni listi. Dodaj Ime = "Konsolidirano"
'Dodajte nekaj glav vsakemu posameznemu stolpcu znotraj združenega lista
Z listi ("Konsolidirano")
.Range("a1").Value = "Datum naročila"
.Range("b1").Value = "Regija"
.Range("c1").Value = "Rep"
.Range("d1").Value = "Item"
.Range("e1").Value = "Enote"
.Range("f1").Value = "UnitCost"
.Range("g1").Value = "Skupaj"

Končaj z
»Na novo ustvarjeni konsolidirani list bo vseboval konsolidirane podatke iz vsakega posameznega lista v primarnem delovnem zvezku

Za i = 1 Za wbk1.Delovni listi. štetje
Če Listi (i).Ime <> "Konsolidirano" Potem
»Zajemite zadnjo poseljeno vrstico iz podatkovnih listov v delovnem zvezku
zadnja vrstica = Listi (i).Razpon("a1").Konec (xlDown).Vrstica
»Zajemite zadnjo poseljeno vrstico na konsolidiranem listu
lastrow1 = wbk1.Sheets("Consolidated").Range("a1048576").End (xlUp).Row + 1

»Kopiraj podatke iz izvornega lista in jih prilepi v združeni list
Listi (i).Range("a2:g" & lastrow).Destinacija kopiranja:=Liste("Consolidated").Range("a" & lastrow1)
Konec Če
Naslednji i
»Omogočite funkcije Excel VBA za nadaljnjo uporabo
Z aplikacijo
.ScreenUpdating = Res
.DisplayAlerts = Res
Končaj z

Končni sub

Razložena koda VBA

Najprej razglasite vse spremenljivke, ki jih uporabljate v kodi, in jim dodelite pravilne tipe podatkov VBA, da bo koda delovala brezhibno.

Ko navedete spremenljivke, je potrebno nekaj osnovnega gospodinjstva. To storite tako, da onemogočite utripanje zaslona in zadušite pojavna opozorila. Na primer, ko izbrišete obstoječi list s kodo VBA, poziv v Excelu zahteva potrditev, preden izbrišete list. Takšni pozivi so potlačeni, da se poveča hitrost izvajanja.

V naslednjem koraku morate definirati ime delovnega zvezka, ki vsebuje vse vaše podatke. Zamenjati Test.xlsx z imenom in razširitvijo imena delovnega zvezka. Poskrbite, da boste ime obdali z narekovaji.

Aktivirajte primarni delovni zvezek in izbrišite vse obstoječe liste z imenom Konsolidirano odstraniti vse predhodno shranjene podatke. Koda VBA preklaplja skozi vsak list in takoj, ko naleti na ime lista Konsolidirano izbrisal ga bo. To se naredi z uporabo Izjava VBA IF, ki preveri logične pogoje in izbriše list takoj, ko je pogoj izpolnjen.

Primarnemu delovnemu zvezku je dodan nov list za shranjevanje konsolidiranih podatkov. Nato se temu listu dodajo vnaprej oblikovane, standardizirane glave. Vrednosti naslovov (glave stolpcev) lahko spremenite tako, da posodobite informacije poleg sklicevanj na celice znotraj narekovajev.

Na primer: .Range(“a1”) = “Datum naročila” se lahko zamenja z .Range(“a1”) = “Številka naročila”

Nato se zanka VBA FOR preklaplja skozi vsak delovni list, kopira vsebino lista in prilepi vsebino v Konsolidirano delovni list, preden se premaknete na naslednji list v delovnem zvezku. Ta postopek se ponavlja, dokler niso kopirani vsi listi.

Med tem postopkom se vse vrstice samodejno izračunajo in prilepijo na konsolidirani list. Zadnja izpolnjena vrstica se samodejno izračuna, preden se podatki prilepijo. Makro je dinamičen in se lahko prilagodi različnim podatkovnim vrsticam na vsakem delovnem listu.

Povezano: Napredne funkcije Microsoft Excela, ki jih morate poznati

Ko so podatki iz vseh listov prilepljeni v glavni konsolidacijski list, se makro premakne na zadnji del kode. Funkcije VBA, ki so bile prvotno onemogočene, so ponovno omogočene za prihodnjo uporabo.

Združevanje več listov z uporabo makra Excel VBA

Excel VBA je odveč programski jezik, ki dobro deluje z vsemi Excelovimi komponentami. Vsak kos kode je bistvenega pomena in pomembno si je zapomniti, da je izvedba odvisna od izvajalnega sistema vrstice za vrstico, zato ne smete spreminjati vrstnega reda vrstic kode.

Če želite kodo prilagoditi svojim zahtevam, lahko naredite potrebne spremembe in zaženete to kodo za učinkovito in učinkovito konsolidacijo podatkov v nekaj sekundah.

5 kul makrov Microsoft Excel za razvrščanje podatkov

Poenostavite upravljanje podatkov s temi Excelovimi makri.

Preberite Naprej

DelitiTweetE-naslov
Povezane teme
  • Programiranje
  • Microsoft Excel
  • Makri
  • Programiranje
O avtorju
Gaurav Siyal (Objavljenih 21 člankov)

Gaurav Siyal ima dve leti izkušenj s pisanjem, pisanjem za vrsto podjetij za digitalni marketing in dokumente o življenjskem ciklu programske opreme.

Več od Gaurav Siyal

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!

Kliknite tukaj, da se naročite