Excel VBA ir neatņemama Excel automatizācijas sastāvdaļa, un VBA lietojumu un priekšrocības nevar apdraudēt. Ja atrodaties kalnup cīņā, mēģinot apvienot vairākas lapas un darbgrāmatas programmā Excel, mēs esam šeit, lai palīdzētu.

Šajā rokasgrāmatā minētie makro palīdzēs jums paveikt šķietami nepārvaramo uzdevumu dažu sekunžu laikā (vai minūtēs, ja datu līdzekļi ir lieli).

Izpildot šo pamācību, programmā Excel izveidosit savu VBA makro un efektīvi sapludināsit vairākas lapas vienā failā.

Vairāku Excel lapu sapludināšana vienā failā

Šim uzdevumam dati tiek glabāti šādās lapās:

  • 1. lapa
  • 2. lapa
  • 3. lapa

Iepriekš uzskaitītie lapu nosaukumi ir paredzēti tikai ilustratīviem nolūkiem. Šis VBA makro ir vispārīgs un nav atkarīgs no lapu nosaukumiem; varat pielāgot kodu, lai to izmantotu ar jebkuru lapas nosaukumu(-iem).

Priekšnosacījumi koda palaišanai

Tālāk norādītā VBA koda palaišanai ir daži priekšnosacījumi.

Makro kods ir jāsaglabā jaunā Excel failā. Saglabājiet šo darbgrāmatu ar a .xlsm pagarinājumu. Varat saglabāt VBA makro darbgrāmatu ar jebkuru nosaukumu.

instagram viewer

Atveriet jaunu Excel failu; nospiediet Alt + F11 tastatūrā, lai atvērtu Excel VBA redaktoru. Kad redaktors ir atvērts, pievienojiet jaunu koda moduli, noklikšķinot uz Ievietot cilne augšpusē. Izvēlieties Modulis lai ievietotu jaunu moduli; šeit jums būs jāievada tālāk norādītais VBA makro kods.

Konsolidējamajām datu lapām kopumā jābūt citā atsevišķā darbgrāmatā. Darbgrāmatas un lapu nosaukums var būt jūsu izvēlētais.

Tiklīdz jūs izpildīsit VBA kodu, VBA makro tiks cikls cauri katrai pieejamajai darblapai primārā darbgrāmata (datu darbgrāmata) un ielīmējiet saturu tikko pievienotā lapā darba burtnīca.

Konsolidētie dati būs pieejami lapā ar nosaukumu Konsolidēts.

VBA koda palaišana

Ir pienācis laiks palaist tikko saglabāto makro kodu. Kopējiet un ielīmējiet šo kodu VBA redaktora modulī:

Sub consolidate_shts()
'deklarē dažādus kodā izmantotos mainīgos un vba datu tipus
Dim sht kā darblapa, sht1 kā darblapa, pēdējā rinda kā vesels skaitlis, pēdējā rinda1 kā vesels skaitlis
Izpildes laikā atspējot ekrāna mirgošanu un brīdinājuma uznirstošos logus
Ar pieteikumu
.ScreenUpdating = False
.DisplayAlerts = False
Beigt ar
'saglabājiet primārās darbgrāmatas nosaukumu makro mainīgajā. Aizstājiet Test.xlsx ar savas primārās darbgrāmatas nosaukumu
Set wbk1 = darbgrāmatas ("Test.xlsx")
'aktivizējiet darbgrāmatu, pirms veicat tajā funkciju(-as).
wbk1.Aktivizēt
'palaidiet vba for cilpu, lai pārbaudītu, vai konsolidētā lapa jau pastāv. Ja tas pastāv, cilpa for to izdzēsīs.
Katram sht In wbk1.Sheets
Ja sht. Vārds = "Konsolidēts" Tad sht. Dzēst
Nākamais sht
"Pievienojiet jaunu lapu, lai saglabātu tikko konsolidētos datus
Darba lapas. Pievienot. Nosaukums = "Konsolidēts"
Pievienot dažas galvenes katrai atsevišķai kolonnai konsolidētajā lapā
Ar izklājlapām ("Apvienotā")
.Range("a1").Vērtība = "Pasūtījuma datums"
.Range("b1").Vērtība = "Reģions"
.Diapazons("c1").Vērtība = "Rep"
.Range("d1").Vērtība = "vienums"
.Range("e1").Vērtība = "Vienības"
.Range("f1").Vērtība = "UnitCost"
.Diapazons("g1").Vērtība = "Kopā"

Beigt ar
"Jaunizveidotajā konsolidētajā lapā tiks glabāti konsolidētie dati no katras atsevišķas lapas primārajā darbgrāmatā

Ja i = 1 Uz wbk1.Worksheets. Skaitīt
Ja Sheets (i).Nosaukums <> "Konsolidēts" Tad
'Tveriet pēdējo aizpildīto rindu no darbgrāmatas datu lapām
pēdējā rinda = Lapas (i). Diapazons ("a1"). Beigas (xlDown).Rinda
'Tveriet pēdējo aizpildīto rindu konsolidētajā lapā
lastrow1 = wbk1.Sheets("Apvienotā"). Diapazons("a1048576").Beigas (xlUp).Rinda + 1

Kopējiet datus no avota lapas un ielīmējiet tos apvienotajā lapā
Izklājlapas (i). Diapazons("a2:g" & pēdējā rinda).Kopēt Destination:=Lapas("Apvienotā").Diapazons("a" & pēdējā rinda1)
Beigas Ja
Nākamais i
Iespējot Excel VBA funkcijas turpmākai lietošanai
Ar pieteikumu
.ScreenUpdating = Patiess
.DisplayAlerts = Patiess
Beigt ar

Beigt apakš

Paskaidrots VBA kods

Vispirms deklarējiet visus mainīgos, ko izmantojat kodā, un piešķiriet tiem pareizos VBA datu tipus, lai kods darbotos nevainojami.

Kad esat deklarējis mainīgos lielumus, ir nepieciešama pamata uzkopšana. Tas tiek darīts, atspējojot ekrāna mirgošanu un izslēdzot uznirstošos brīdinājumus. Piemēram, kad izdzēšat esošu lapu, izmantojot VBA kodu, programmā Excel tiek prasīts apstiprinājums pirms lapas dzēšanas. Šādas uzvednes tiek bloķētas, lai paātrinātu izpildi.

Nākamajā darbībā jums ir jādefinē darbgrāmatas nosaukums, kurā ir visi jūsu dati. Aizvietot Test.xlsx ar darbgrāmatas nosaukuma nosaukumu un paplašinājumu. Noteikti ieskaujiet nosaukumu ar pēdiņām.

Aktivizējiet primāro darbgrāmatu un izdzēsiet visas esošās lapas ar nosaukumu Konsolidēts lai noņemtu visus iepriekš saglabātos datus. VBA kods tiek pārslēgts cauri katrai lapai un tiklīdz tiek parādīts lapas nosaukums Konsolidēts tas to izdzēsīs. Tas tiek darīts, izmantojot VBA IF paziņojums, kas pārbauda loģiskos nosacījumus un izdzēš lapu, tiklīdz nosacījums ir izpildīts.

Primārajai darbgrāmatai tiek pievienota jauna lapa, lai saglabātu konsolidētos datus. Pēc tam šai lapai tiek pievienotas iepriekš formatētas, standartizētas galvenes. Virsrakstu (kolonnu galvenes) vērtības var mainīt, atjauninot informāciju blakus šūnu atsaucēm pēdiņās.

Piemēram: .Range("a1") = "Pasūtījuma datums" var aizstāt ar .Range("a1") = "pasūtījuma numurs"

Pēc tam VBA FOR cilpa pārslēdz katru darblapu, kopē lapas saturu un ielīmē saturu Konsolidēts darblapu, pirms pāriet uz nākamo darbgrāmatas lapu. Šis process atkārtojas, līdz visas lapas ir pārkopētas.

Šī procesa laikā visas rindas tiek automātiski aprēķinātas un ielīmētas konsolidētajā lapā. Pēdējā aizpildītā rinda tiek automātiski aprēķināta pirms datu ielīmēšanas. Makro ir dinamisks un var pielāgoties dažādām datu rindām katrā darblapā.

Saistīts: Papildu Microsoft Excel līdzekļi, kas jums jāzina

Kad dati no visām lapām ir ielīmēti galvenajā konsolidācijas lapā, makro tiek pārvietots uz koda pēdējo posmu. Sākotnēji atspējotās VBA funkcijas tiek atkal iespējotas turpmākai lietošanai.

Vairāku lapu konsolidēšana, izmantojot Excel VBA makro

Excel VBA ir lieka programmēšanas valoda, kas labi darbojas ar visiem Excel komponentiem. Katrs koda gabals ir būtisks, un ir svarīgi atcerēties, ka izpilde ir atkarīga no rindiņas izpildes sistēmas, tāpēc jums nevajadzētu mainīt koda rindu secību.

Lai pielāgotu kodu savām prasībām, varat veikt nepieciešamās izmaiņas un palaist šo kodu, lai efektīvi konsolidētu datus dažu sekunžu laikā.

5 forši Microsoft Excel makro datu kārtošanai

Padariet datu pārvaldību vienkāršu, izmantojot šos Excel makro.

Lasiet Tālāk

DalītiesČivinātE-pasts
Saistītās tēmas
  • Programmēšana
  • Microsoft Excel
  • Makro
  • Programmēšana
Par autoru
Gaurav Siyal (Publicēts 21 raksts)

Gauravam Sijalam ir divu gadu rakstīšanas pieredze, rakstot virknei digitālā mārketinga firmu un programmatūras dzīves cikla dokumentus.

Vairāk no Gaurav Siyal

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai saņemtu tehniskos padomus, pārskatus, bezmaksas e-grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu