Jak zkombinovat více souborů aplikace Excel do jednoho sešitu aplikace Excel

Zavolal mi přítel, který chtěl zkombinovat více souborů aplikace Excel do jednoho excelového sešitu. Měl spoustu souborů ve složce a chtěl dostat všechny listy ze všech sešitů do jednoho sešitu.

I když to lze provést ručně, bylo by to časově náročné a náchylné k chybám.

Jednoduchý kód VBA to však zvládne za pár sekund.

Zkombinujte více souborů aplikace Excel do jednoho souboru

Zde je kód, který může kombinovat více sešitů aplikace Excel v zadané složce do jednoho sešitu aplikace Excel:

Sub ConslidateWorkbooks () 'Created by Sumit Bansal from https://trumpexcel.com Dim FolderPath As String Dim Filename As String Dim Sheet As Worksheet Application.ScreenUpdating = False FolderPath = Environ ("userprofile") & "DesktopTest" Filename = Dir ( FolderPath & "*.xls*") Dělejte při sešitech se jmény "". Otevřete název souboru: = FolderPath & Název souboru, ReadOnly: = True pro každý list v ActiveWorkbook.Sheets Sheet.Copy After: = ThisWorkbook.Sheets (1) Next Sheetsbooks (Název souboru). Zavřít Název souboru = Dir () Loop Application.ScreenUpdating = True End Sub

Jak tento kód používat?

Zde jsou kroky k použití tohoto kódu:

  • Vložte všechny soubory aplikace Excel, které chcete zkombinovat, do složky. Pro účely tohoto tutoriálu jsem vytvořil složku s názvem Test a mám v ní šest souborů (4 sešity aplikace Excel a každý 1 Power Point a Word).
  • Otevřete nový sešit aplikace Excel.
  • Stiskněte ALT + F11 (nebo přejděte na Developer -> Code -> Visual Basic). Tím se otevře editor jazyka Visual Basic.
  • V editoru VB v editoru projektů klikněte pravým tlačítkem na libovolný objekt sešitu a přejděte na Vložit -> Modul. Tím se vloží modul pro sešit.
  • Dvakrát klikněte na modul. Vpravo se otevře okno s kódem.
  • Zkopírujte a vložte výše uvedený kód do okna kódu.
  • V kódu je třeba změnit následující řádek kódu:
    FolderPath = Environ ("userprofile") & "DesktopTest"

    V tomto řádku změňte část v uvozovkách (zvýrazněno oranžově) s umístěním složky, ve které máte soubory, které chcete kombinovat. V kódu použitém výše je složka na ploše. V případě, že ho máte na jiném místě, zadejte tuto cestu zde.

  • Umístěte kurzor kamkoli do kódu a klikněte na zelené tlačítko přehrávání v možnostech lišty Toolbar (nebo stiskněte klávesu F5).

Tím se spustí kód a všechny listy ze všech souborů aplikace Excel ve složce budou sloučeny do jednoho sešitu.

Jak tento kodex funguje?

  • Kód používá funkci DIR k získání názvů souborů ze zadané složky.
  • Následující řádek přiřadí první název souboru aplikace Excel proměnné „Název souboru“.
    Název souboru = Dir (FolderPath & “*.xls*”)
  • Poté smyčka Do While slouží ke kontrole, zda byly pokryty všechny soubory.
  • Ve smyčce „Do While“ se smyčka „For Every“ používá ke zkopírování všech listů do sešitu, ve kterém kód spouštíme.
  • Na konci smyčky Do se používá následující řádek kódu: Filename = Dir (). Proměnné Název souboru přiřadí další název souboru aplikace Excel a smyčka začne znovu.
  • Když jsou všechny soubory pokryty, funkce DIR vrátí prázdný řetězec, což je konec smyčky.

Zde je vysvětlení funkce DIR v knihovně MSDN:

Dir vrátí první název souboru, který odpovídá názvu cesty. Chcete -li získat další názvy souborů, které odpovídají názvu cesty, zavolejte Dir opět bez argumentů. Když se neshodují další názvy souborů, Dir vrátí řetězec nulové délky (“”).

Zkoušeli jste někdy něco takového pomocí VBA? Podělte se o to, co jste udělali, a všichni se z toho můžeme poučit.

Šetřete šílené množství času pomocí VBA. Podívejte se na KURZ Excel VBA.

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave