Volal mi priateľ, ktorý chcel skombinovať viacero súborov programu Excel do jedného zošita programu Excel. Mal veľa súborov v priečinku a chcel dostať všetky pracovné listy zo všetkých zošitov do jedného pracovného zošita.
Aj keď sa to dá urobiť ručne, bolo by to časovo náročné a náchylné na chyby.
Jednoduchý kód VBA to však dokáže za niekoľko sekúnd.
Skombinujte viac súborov programu Excel do jedného súboru
Tu je kód, ktorý môže kombinovať viacero zošitov programu Excel v určenom priečinku do jedného zošita programu Excel:
Sub ConslidateWorkbooks () 'Vytvoril Sumit Bansal z https://trumpexcel.com Dim FolderPath ako reťazec Dim názov súboru ako reťazec Dim list ako pracovný list Application.ScreenUpdating = False FolderPath = Environ ("userprofile") & "DesktopTest" Názov súboru = Dir ( FolderPath & "*.xls*") Vykonajte zošity s názvom súboru "". Otvorte názov súboru: = FolderPath & Názov súboru, ReadOnly: = Platí pre každý list v programe ActiveWorkbook.Sheets Sheet.Copy After: = ThisWorkbook.Sheets (1) Next Sheet Workbooks [Názov súboru]. Zatvorte Názov súboru = Dir () Aplikácia slučky. ScreeneUpdating = True End Sub
Ako používať tento kód?
Tu sú kroky na použitie tohto kódu:
- Vložte všetky súbory programu Excel, ktoré chcete skombinovať, do priečinka. Na účely tohto tutoriálu som vytvoril priečinok s názvom Test a obsahuje v ňom šesť súborov (4 zošity programu Excel a po 1 Power Point a Word).
- Otvorte nový zošit programu Excel.
- Stlačte kombináciu klávesov ALT + F11 (alebo prejdite na položku Vývojár -> Kód -> Visual Basic). Tým sa otvorí editor jazyka Visual Basic.
- V editore VB v editore projektu kliknite pravým tlačidlom myši na ľubovoľný objekt zošita a prejdite na položku Vložiť -> Modul. Tým sa vloží modul do zošita.
- Dvakrát kliknite na modul. Vpravo sa otvorí okno s kódom.
- Skopírujte a prilepte vyššie uvedený kód do okna kódu.
- V kóde musíte zmeniť nasledujúci riadok kódu:
FolderPath = Environment ("užívateľský profil") & "DesktopTest"
V tomto riadku zmeňte časť na dvojité úvodzovky (zvýraznené oranžovou farbou) s umiestnením priečinka, v ktorom máte súbory, ktoré chcete skombinovať. Vo vyššie uvedenom kóde je priečinok na ploche. V prípade, že ho máte na inom mieste, zadajte tu cestu.
- Umiestnite kurzor kamkoľvek do kódu a kliknite na zelené tlačidlo prehrávania v možnostiach Panela s nástrojmi (alebo stlačte kláves F5).
Tým sa spustí kód a všetky pracovné hárky zo všetkých súborov programu Excel v priečinku sa zlúčia do jedného zošita.
Ako tento kódex funguje?
- Kód používa funkciu DIR na získanie názvov súborov zo zadaného priečinka.
- Nasledujúci riadok priradí prvý názov súboru programu Excel premennej „Názov súboru“.
Názov súboru = Dir (FolderPath & „*.xls*“) - Potom sa slučka Do While používa na kontrolu, či sú pokryté všetky súbory.
- V slučke „Do While“ sa slučka „For each“ používa na skopírovanie všetkých pracovných hárkov do zošita, v ktorom kód spustíme.
- Na konci cyklu Do Loop sa používa nasledujúci riadok kódu: Filename = Dir (). Premennej názov súboru priradí nasledujúci názov súboru programu Excel a slučka sa začne znova.
- Keď sú všetky súbory zakryté, funkcia DIR vráti prázdny reťazec, kedy sa slučka končí.
Tu je vysvetlenie funkcie DIR v knižnici MSDN:
Dir vráti prvý názov súboru, ktorý sa zhoduje s cestou. Ak chcete získať ďalšie názvy súborov, ktoré sa zhodujú s názvom cesty, zavolajte Dir opäť bez argumentov. Keď sa viac nezhodujú názvy súborov, Dir vráti reťazec s nulovou dĺžkou (“”).
Skúsili ste niekedy niečo také použiť VBA? Podeľte sa o to, čo ste urobili, a všetci sa z toho môžeme poučiť.
Šetrite bláznivé množstvo času pomocou VBA. Pozrite sa na KURZ Excel VBA.