Přejít k hlavnímu obsahu

Vytvořte více složek a podsložek ze seznamu dat v Excelu

Předpokládejme, že máte seznam jmen zaměstnanců v rozsahu pracovního listu a chcete pro každého vytvořit samostatné složky pro uložení jejich informací. Ruční vytváření každé složky může být časově náročné. Existují však účinné způsoby, jak tento proces urychlit. V této příručce se podělím o několik přístupů k rychlému generování složek na základě zadaných hodnot buněk.

Vytvářejte složky na základě hodnot buněk

Vytvářejte složky a podsložky na základě hodnot buněk pomocí kódu VBA


Vytvářejte složky na základě hodnot buněk

V této části podrobně prozkoumáme různé metody a nabídneme komplexní pokyny krok za krokem k rychlému a snadnému vytváření složek na základě seznamu hodnot buněk.

Vytvořte složky ze seznamu pomocí příkazu MD a programu Poznámkový blok

Převedení seznamu z Excelu do složek pomocí příkazu MD a Poznámkového bloku je chytrý trik, který kombinuje snadné dávkové skriptování s talentem Excelu pro udržení pořádku. Tato metoda je skvělá pro rychlé vytváření mnoha složek, aniž byste to museli dělat ručně. Zde je podrobný návod, jak tento úkol splnit:

Krok 1: Pomocí příkazu MD vytvořte vzorce

Zkopírujte nebo zadejte následující vzorec do prázdné buňky vedle hodnoty první buňky (například B1) a poté přetažením úchytu výplně dolů použijte vzorec na všechny položky seznamu.

="MD "&A1

Krok 2: Zkopírujte a vložte vzorce do souboru programu Poznámkový blok

  1. Stisknout Ctrl + C pro zkopírování buněk pomocí příkazového vzorce MD.
  2. Otevřená Notepad a stiskněte Ctrl + V pro vložení příkazů do nového souboru.

Krok 3: Uložte soubor programu Poznámkový blok jako soubor .bat

klikněte Uložit jako z Soubor kartu v Poznámkovém bloku, v Uložit jako dialogovém okně vyberte adresář, ve kterém chcete vytvořit více složek, a poté pojmenujte tento soubor pomocí a . Tlukot rozšíření. Nakonec klikněte Uložit knoflík. Viz screenshot:

Krok 4: Dvojitým kliknutím na soubor .bat vygenerujete více složek

  1. Zavřete soubor Poznámkový blok, přejděte do složky, do které jste dříve uložili soubor .bat.
  2. Nyní se staňte svědky toho kouzla: dvakrát klikněte na soubor a uvidíte, že se vytváří více složek najednou. Podívejte se na ukázku níže:
 

Vytvořte složky ze seznamu pomocí výkonného nástroje – Kutools pro Excel

S mocnými Kutools pro ExcelJe Vytvořte složky z obsahu buňky nyní můžete snadno a rychle vytvářet složky ze seznamu aplikace Excel. Nezůstane ale jen u základních složek; Kutools také umožňuje vytvářet složité struktury s víceúrovňovými podsložkami najednou. Jen několik jednoduchých kroků může transformovat data z Excelu do organizovaného systému složek, což výrazně zvýší vaši produktivitu.

Poznámka: Pokud chcete použít toto Vytvořte složky z obsahu buňky funkce, prosím stáhnout a nainstalovat Kutools pro Excel jako první.

Po instalaci Kutools pro Excel, Prosím klikněte Kutools Plus > Import Export > Vytvořte složky z obsahu buňky k otevření Vytvořte složky z obsahu buňky dialogové okno:

  1. Vyberte hodnoty buněk, na základě kterých chcete vytvořit složky;
  2. Potom klepněte na tlačítko tlačítko pro zadání cílové složky, do které chcete složky uložit;
  3. Nakonec klepněte na tlačítko OK .

Výsledek:

Kutools zpracuje seznam z vašeho listu a vytvoří složku pro každý záznam v zadaném cíli. Chcete-li zobrazit výsledek, přejděte do cílové složky. Viz snímek obrazovky:

Tip:
  1. Tato užitečná funkce může také pomoci vytvářet složky spolu s jejich podsložkami jak potřebujete. Chcete-li to provést, měli byste do buněk zadat názvy požadovaných složek a podsložek pomocí znaménka zpětného lomítka (\) k oddělení jednotlivých úrovní. Obsah každé buňky bude sloužit jako vodítko pro nastavení požadované struktury složek a podsložek.

    Poté aplikujte Vytvořte složky z obsahu buňky všechny složky spolu s jejich podsložkami budou úspěšně vytvořeny. Viz snímek obrazovky:
  2. Chcete-li použít tuto funkci, prosím stáhnout a nainstalovat Kutools pro Excel jako první.
 

Vytvořte složky ze seznamu pomocí kódu VBA

Použití kódu VBA v Excelu může přeměnit únavný úkol vytváření složek ze seznamu na rychlý, automatizovaný proces. Tato část vám ukáže, jak použít kód VBA pro generování složek.

Krok 1: Otevřete editor modulu VBA a zkopírujte kód

  1. Podržte stisknuté tlačítko ALT + F11 klíče v aplikaci Excel a otevře Microsoft Visual Basic pro aplikace okno.
  2. klikněte Vložit > Modula vložte následující kód do Modul Okno.
    Kód VBA: Vytvářejte složky na základě seznamu hodnot buněk
    Sub CreateFoldersFromSelection()
    'Updateby Extendoffice
        Dim FolderPath As String
        Dim Cell As Range
        Dim SelectedRange As Range
        Dim FolderName As String
        On Error Resume Next
        Set SelectedRange = Application.InputBox("Select the range with folder names", "Kutools for Excel", Type:=8)
        If SelectedRange Is Nothing Then Exit Sub
        On Error GoTo 0
        
        With Application.FileDialog(msoFileDialogFolderPicker)
            .Title = "Select the destination Folder"
            .AllowMultiSelect = False
            If .Show <> -1 Then Exit Sub
            FolderPath = .SelectedItems(1) & "\"
        End With
        
        For Each Cell In SelectedRange
            FolderName = FolderPath & Cell.Value
            If Cell.Value <> "" And Not FolderExists(FolderName) Then
                MkDir FolderName
            End If
        Next Cell
    End Sub
    
    Function FolderExists(ByVal Path As String) As Boolean
        On Error Resume Next
        FolderExists = (GetAttr(Path) And vbDirectory) = vbDirectory
        On Error GoTo 0
    End Function
    

Krok 2: Spusťte kód

  1. Po vložení tohoto kódu stiskněte F5 klíč ke spuštění tohoto kódu. V poli výzvy vyberte hodnoty buněk, ze kterých chcete vytvořit složky. A pak klikněte OK.
  2. Potom v následujícím Vyberte cílovou složku v okně zadejte cílovou cestu pro výstup vytvořených složek. A pak klikněte OK tlačítko, viz screenshot:

Výsledek:

Po provedení kódu VBA přejděte do cílového adresáře a zobrazte výsledek. Zde najdete nově vytvořené složky, z nichž každá odpovídá položce z vašeho seznamu Excel. viz snímek obrazovky:

Tip:
  1. Pokud jsou v buňkách duplicitní položky, spuštění kódu povede k vytvoření pouze jedné složky pro tyto duplikáty.
  2. Pokud zjistíte, že tento kód používáte často, zvažte uložení sešitu Sešit Excel s podporou maker formát. Tato akce zachová kód v sešitu, což vám umožní přímo jej spustit v budoucnu, aniž byste museli kód znovu zadávat nebo znovu importovat.

Vytvářejte složky a podsložky na základě hodnot buněk pomocí kódu VBA

Občas se můžete dostat do situace, kdy potřebujete vygenerovat nejen složky, ale i jejich odpovídající podsložky, a to vše na základě dat v buňkách Excelu. K dosažení tohoto úkolu zde představím kód VBA.

Krok 1: Připravte data

Nejprve byste měli zadat data podle následujícího obrázku, umístit názvy hlavních složek do prvního sloupce a názvy podsložek do druhého sloupce.

Krok 2: Otevřete editor modulu VBA a zkopírujte kód

  1. Podržte stisknuté tlačítko ALT + F11 klíče v aplikaci Excel a otevře Microsoft Visual Basic pro aplikace okno.
  2. klikněte Vložit > Modula vložte následující kód do Modul Okno.
    Kód VBA: Vytvářejte složky a podsložky založené na hodnotách buněk
    Sub CreateFoldersAndSubfoldersWithUserInput()
    'Updateby Extendoffice
        Dim Rng As Range
        Dim Cell As Range
        Dim basePath As String
        Dim fldrPicker As FileDialog
        Dim FolderPath As String, subfolderPath As String
        On Error Resume Next
        Set Rng = Application.InputBox("Select the range of cells (two columns: one is folder column, another s subfolder column):", "Kutools for Excel", Type:=8)
        If Rng Is Nothing Then Exit Sub
        On Error GoTo 0
        Set fldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
        With fldrPicker
            .Title = "Select the Base Folder Path"
            .AllowMultiSelect = False
            If .Show <> -1 Then Exit Sub
            basePath = .SelectedItems(1)
        End With
        If Right(basePath, 1) <> "\" Then basePath = basePath & "\"
        For Each Cell In Rng.Columns(1).Cells
            If Not Cell.Value = "" Then
                FolderPath = basePath & Cell.Value
                If Not FolderExists(FolderPath) Then MkDir FolderPath
                If Not Cell.Offset(0, 1).Value = "" Then
                    subfolderPath = FolderPath & "\" & Cell.Offset(0, 1).Value
                    If Not FolderExists(subfolderPath) Then MkDir subfolderPath
                End If
            End If
        Next Cell
    End Sub
    
    Function FolderExists(FolderPath As String) As Boolean
        On Error Resume Next
        FolderExists = (GetAttr(FolderPath) And vbDirectory) = vbDirectory
        On Error GoTo 0
    End Function
    

Krok 3: Spusťte kód

  1. Po vložení tohoto kódu stiskněte F5 klíč ke spuštění tohoto kódu. V poli výzvy vyberte hodnoty buněk, ze kterých chcete vytvořit složky. A pak klikněte OK.
  2. V následujícím vyskakovacím okně zadejte cílovou cestu pro výstup vytvořených složek. A pak klikněte OK tlačítko, viz screenshot:

Výsledek:

Po provedení kódu VBA přejděte do cílového adresáře a zobrazte výsledek. Zjistíte, že složky a jejich příslušné podsložky, jak je diktováno hodnotami buněk, byly úspěšně vytvořeny, jak ukazuje následující snímek obrazovky:

Tip:
  1. Tento kód je k dispozici pouze pro vytvoření pouze hlavních složek a jejich podsložek první úrovně.
  2. Pokud zjistíte, že tento kód používáte často, zvažte uložení sešitu Sešit Excel s podporou maker formát. Tato akce zachová kód v sešitu, což vám umožní přímo jej spustit v budoucnu, aniž byste museli kód znovu zadávat nebo znovu importovat.

Související články:

  • Seznam všech složek a podsložek v aplikaci Excel
  • Už jste někdy trpěli tímto problémem, že jste do listu uvedli všechny složky a podsložky ze zadaného adresáře? V aplikaci Excel neexistuje rychlý a praktický způsob, jak získat název všech složek v určitém adresáři najednou. Při řešení tohoto úkolu vám může pomoci tento článek.
  • Zkopírujte nebo přesouvejte soubory z jedné složky do druhé na základě seznamu
  • Pokud máte seznam názvů souborů ve sloupci v listu a soubory se nacházejí ve složce ve vašem počítači. Ale teď musíte přesunout nebo zkopírovat tyto soubory, jejichž názvy jsou uvedeny v listu z jejich původní složky do jiné, jak je znázorněno na následujícím obrázku. Jak byste mohli tento úkol dokončit co nejrychleji v aplikaci Excel?
  • Přejmenujte více souborů ve složce
  • Možná většina z nás trpí tímto problémem, že musíme přejmenovat více souborů ve složce, přejmenovat jeden po druhém nás bude bláznit, pokud v této složce budou stovky nebo tisíce souborů. Existují pro nás nějaké dobré funkce, abychom tento úkol zvládli?
Comments (63)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
níže CZ verze

EN:

A better way to do this in a few seconds is to use cmd (.bat file)

If you have a list of names in excel, add the word MKdir in front of the name (folder name) and if it contains a space put the name in quotes. Then just copy it to notepad, save as and add the .bat extension. Once you have this, substitute the .bat file in the folder where it wants to be created and you're done.

If you want the cmd not to close write at the end of the puase like below

Here is the 3 word code *5* :

start
________
MKdir "Pixie Pin"

pause
________
end


this creates a folder named Pixie Pin in the folder where the command was run

CZ:

Lepší způsob jak to udělat během par sec. je použít cmd (.bat soubor)

Pokud máte seznam jmen v excelu, doplňte pomocí vzorečku slovo MKdir před jmeno (název složky) a pokud obsahuje mezeru dejte název do uvozovek. Poté stačí jen zkopírovat do oznámkového bloku (NotePad), dát uložit jako a dopsat příponu .bat . Jakmile toto máte, supsťte .bat soubor ve složce kde chce aby se vytvořili a máte to.

Pokud chcete aby se cmd nezavřelo napište na konec puase jako je níže

Zde je ten 3 slovný kód *5* :

start
________
MKdir "Pixie Pin"

pause
________
konec


toto vytvoří složku s názvem Pixie Pin ve složce kde byl příkaz spuštěn
This comment was minimized by the moderator on the site
This worked really well, even for someone with zero experience with VBA :-)
Would it be possible to adapt the macro or extend the macro to also create hyperlinks to the folders in the selected cells?
So for instance, Cell A3 is selected and you run the macro and the folder is created. Would it be possible to make cell A3 a hyperlink to the folder by expanding on the macro instead of doing that manually?
This comment was minimized by the moderator on the site
Hello, Marloes
To create hyperlinks for the cell values, the following vba code may help you:

First, please select the cell values, and then run this code, and select a folder for outputting the folders.

Sub MakeFoldersAndAddHyperlinksWithFolderSelection()
    Dim Rng As Range
    Dim maxRows, maxCols, r, c As Integer
    Dim folderPath As String
    Dim baseFolderPath As String
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    
    With fd
        If .Show = -1 Then
            baseFolderPath = .SelectedItems(1) & "\"
        Else
            MsgBox "No folder selected. Operation Cancelled."
            Exit Sub
        End If
    End With
    
    Set Rng = Selection
    maxRows = Rng.Rows.Count
    maxCols = Rng.Columns.Count
    
    For c = 1 To maxCols
        For r = 1 To maxRows
            folderPath = baseFolderPath & Rng.Cells(r, c).Value
            If Len(Dir(folderPath, vbDirectory)) = 0 Then
                MkDir folderPath
                On Error Resume Next
                ActiveSheet.Hyperlinks.Add Anchor:=Rng.Cells(r, c), Address:=folderPath, TextToDisplay:=Rng.Cells(r, c).Value
                On Error GoTo 0
            End If
        Next r
    Next c
End Sub


Please have a try, thank you!
This comment was minimized by the moderator on the site
please, i need that same macro but instead of saving them as folders, i need it to save as Excels.
This comment was minimized by the moderator on the site
is it possible to introduce a condition where if that condition is met the module can create 2 folders (each using a different path)?
if the first list of folders is in the A column then the condition occurs in the U column. The conditional criteria is whether the cell is empty or not.
if the condition is not met the module only makes one folder based on the selection.
This comment was minimized by the moderator on the site
Hi, a_c, sorry I have not found a method can solve this job yet.
This comment was minimized by the moderator on the site
Thank you very much
This comment was minimized by the moderator on the site
Thanks a lot! Your VBA code is really super
This comment was minimized by the moderator on the site
Is it possible to import data from a word to excel on colors algorythme? So, I spell the cities with red and countries with blue in a word, and the to import only these to excel. I don’t know if I made myself clear. Thanks
This comment was minimized by the moderator on the site
Thank you, this has saved me literally days of work.
This comment was minimized by the moderator on the site
Hello,


For the following code it shows error in

MkDir (ActiveWorkbook.Path & "\" & Rng(r, c))



It says Runtime error 76 path not found



Can someone please help me with this?

There are no unsupported characters in the file path.
Not sure what could be the problem

Thanks for the help!
This comment was minimized by the moderator on the site
thank you , time saved
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations