Excel VBA je neoddeliteľnou súčasťou automatizácie Excelu a používanie a výhody jazyka VBA nemožno podkopať. Ak ste v namáhavej bitke pri pokuse o konsolidáciu viacerých hárkov a zošitov v Exceli, sme tu, aby sme vám pomohli.

Makrá uvedené v tejto príručke vám pomôžu dosiahnuť zdanlivo neprekonateľnú úlohu v priebehu niekoľkých sekúnd (alebo minút, ak sú dátové aktíva veľké).

Podľa tohto návodu si vytvoríte svoje vlastné makro VBA v Exceli a efektívne zlúčite viacero hárkov do jedného súboru.

Zlúčenie viacerých hárkov Excelu do jedného súboru

Pre túto úlohu sú údaje uložené v nasledujúcich hárkoch:

  • Hárok 1
  • Hárok 2
  • Hárok 3

Vyššie uvedené názvy listov slúžia len na ilustračné účely. Toto makro VBA je všeobecné a nezávisí od názvov hárkov; kód môžete prispôsobiť tak, aby ste ho mohli použiť s akýmkoľvek názvom (názvami) listu.

Predbežné požiadavky na spustenie Kódexu

Existujú určité predpoklady na spustenie kódu VBA uvedeného nižšie.

Kód makra musíte uložiť do nového súboru Excel. Uložte tento zošit s a .xlsm rozšírenie. Zošit makier VBA môžete uložiť s ľubovoľným názvom.

instagram viewer

Otvorte nový súbor programu Excel; stlačte tlačidlo Alt + F11 na klávesnici a otvorte editor Excel VBA. Po otvorení editora pridajte nový modul kódu kliknutím na Vložiť kartu v hornej časti. Vyberte modul vložiť nový modul; tu budete zadávať kód makra VBA uvedený nižšie.

Údaje, ktoré sa majú konsolidovať, by mali byť celkom v inom samostatnom zošite. Názov zošita a hárkov môže byť ľubovoľný.

Hneď ako spustíte kód VBA, makro VBA bude prechádzať každým dostupným pracovným hárkom v primárny zošit (údajový zošit) a prilepte obsah do novo pridaného hárka v rámci toho istého pracovný zošit.

Konsolidované údaje budú dostupné v hárku s názvom Konsolidované.

Spustenie kódu VBA

Je čas spustiť novo uložený kód makra. Skopírujte a vložte tento kód do modulu editora VBA:

Subconsolidate_shts()
'deklarujte rôzne premenné používané v kóde a typy údajov vba
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Integer, lastrow1 As Integer
'zakázať blikanie obrazovky a vyskakovacie okná počas vykonávania
S aplikáciou
.ScreenUpdating = False
.DisplayAlerts = False
Koniec s
'uložte názov primárneho zošita do premennej makra a. Nahraďte Test.xlsx názvom vášho primárneho zošita
Nastaviť wbk1 = Workbooks("Test.xlsx")
'aktivujte zošit pred vykonaním funkcie (funkcií) na ňom
wbk1.Aktivovať
'spustite cyklus vba for, aby ste skontrolovali, či hárok Consolidated už existuje. Ak existuje, cyklus for ho vymaže.
Pre každý sht v wbk1.Sheets
Ak sht. Meno = "Konsolidované" Potom sht. Odstrániť
Ďalší sht
„Pridajte nový hárok na uloženie nových konsolidovaných údajov
Listy. Pridať. Názov = "Konsolidované"
„Pridajte nejaké hlavičky do každého jednotlivého stĺpca v konsolidovanom hárku
S hárkami ("Konsolidované")
.Range("a1").Value = "Dátum objednávky"
.Range("b1").Value = "Region"
.Range("c1").Value = "Rep"
.Rozsah("d1").Value = "Položka"
.Range("e1").Value = "Jednotky"
.Range("f1").Value = "Jednotková cena"
.Rozsah("g1").Hodnota = "Celkom"

Koniec s
„Novovytvorený konsolidovaný hárok bude obsahovať konsolidované údaje z každého jednotlivého hárka v primárnom zošite

Pre i = 1 To wbk1.Worksheets. počítať
Ak Sheets (i).Name <> "Konsolidované" Potom
„Zachyťte posledný vyplnený riadok z údajových listov v zošite
lastrow = Sheets (i).Range("a1").End (xlDown).Row
„Zachyťte posledný vyplnený riadok v konsolidovanom hárku
lastrow1 = wbk1.Sheets("Consolidated").Range("a1048576").End (xlUp).Row + 1

'Skopírujte údaje zo zdrojového hárka a vložte ich do konsolidovaného hárku
Tabuľky (i).Range("a2:g" & posledný riadok).Cieľ kopírovania:=Tabuľky("Konsolidované").Range("a" & posledný riadok1)
Koniec Ak
Ďalej i
'Povoliť funkcie Excel VBA pre budúce použitie
S aplikáciou
.ScreenUpdating = Pravda
.DisplayAlerts = Pravda
Koniec s

End Sub

Vysvetlenie kódu VBA

Najprv deklarujte všetky premenné, ktoré používate v kóde, a priraďte im správne typy údajov VBA, aby kód fungoval bez problémov.

Akonáhle deklarujete premenné, je potrebné vykonať základné upratovanie. To sa dosiahne vypnutím blikania obrazovky a potlačením kontextových upozornení. Napríklad, keď odstránite existujúci hárok pomocou kódu VBA, pred odstránením hárka sa v Exceli zobrazí výzva na potvrdenie. Výzvy, ako je táto, sú potlačené, aby sa zvýšila rýchlosť vykonávania.

V ďalšom kroku musíte definovať názov zošita, ktorý obsahuje všetky vaše údaje. Vymeňte Test.xlsx s názvom a príponou názvu zošita. Uistite sa, že ste meno obklopili úvodzovkami.

Aktivujte primárny zošit a odstráňte všetky existujúce hárky s názvom Konsolidované na odstránenie všetkých predtým uložených údajov. Kód VBA sa prepína medzi jednotlivými hárkami a hneď ako narazí na názov hárka Konsolidované vymaže to. To sa vykonáva pomocou príkaz VBA IF, ktorý skontroluje logické podmienky a po splnení podmienky hárok vymaže.

Do primárneho zošita sa pridá nový hárok na uloženie konsolidovaných údajov. Následne sa do tohto listu pridajú predformátované štandardizované hlavičky. Hodnoty názvov (hlavičiek stĺpcov) môžete zmeniť aktualizáciou informácií vedľa odkazov na bunky v úvodzovkách.

Napríklad: .Rozsah(“a1”) = “Dátum objednávky” možno nahradiť s .Rozsah(“a1”) = “Číslo objednávky”

Ďalej slučka VBA FOR prepína každý pracovný hárok, skopíruje obsah hárka a vloží obsah do Konsolidované pracovný hárok pred prechodom na ďalší hárok v zošite. Tento proces sa opakuje, kým sa neskopírujú všetky hárky.

Počas tohto procesu sa automaticky vypočítajú všetky riadky a prilepia sa do konsolidovaného hárka. Posledný vyplnený riadok sa automaticky vypočíta pred vložením údajov. Makro je dynamické a môže sa prispôsobiť rôznym riadkom údajov v každom hárku.

Súvisiace: Pokročilé funkcie programu Microsoft Excel, ktoré musíte poznať

Po vložení údajov zo všetkých hárkov do hlavného konsolidačného hárka sa makro presunie do poslednej časti kódu. Pôvodne deaktivované funkcie VBA sa znova povolia pre budúce použitie.

Konsolidácia viacerých hárkov pomocou makra Excel VBA

Excel VBA je nadbytočný programovací jazyk, ktorý dobre funguje so všetkými komponentmi Excelu. Každá časť kódu je nevyhnutná a je dôležité si uvedomiť, že vykonávanie závisí od systému vykonávania riadkov po riadkoch, takže by ste nemali meniť poradie riadkov kódu.

Ak chcete prispôsobiť kód svojim požiadavkám, môžete vykonať požadované zmeny a spustiť tento kód, aby ste konsolidovali údaje efektívne a efektívne v priebehu niekoľkých sekúnd.

5 skvelých makier programu Microsoft Excel na triedenie údajov

Urobte správu údajov hračkou s týmito makrami programu Excel.

Prečítajte si ďalej

zdieľamTweetujteEmail
Súvisiace témy
  • Programovanie
  • Microsoft Excel
  • Makrá
  • Programovanie
O autorovi
Gaurav Siyal (21 publikovaných článkov)

Gaurav Siyal má dvojročné skúsenosti s písaním, písaním pre sériu digitálnych marketingových firiem a dokumentov životného cyklu softvéru.

Viac od Gaurava Siyala

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber