Hoppa till huvudinnehåll

Skapa flera mappar och undermappar från en lista med data i Excel

Anta att du har en lista med personalnamn inom ett kalkylbladsintervall och strävar efter att skapa individuella mappar för var och en för att lagra deras information. Att skapa varje mapp manuellt kan vara tidskrävande. Det finns dock effektiva metoder för att påskynda denna process. I den här guiden kommer jag att dela flera metoder för att snabbt generera mappar baserat på de angivna cellvärdena.

Skapa mappar baserat på cellvärden

Skapa mappar och undermappar baserat på cellvärden med VBA-kod


Skapa mappar baserat på cellvärden

I det här avsnittet kommer vi att utforska olika metoder i detalj, och erbjuda omfattande steg-för-steg-instruktioner för att snabbt och enkelt skapa mappar baserade på en lista med cellvärden.

Skapa mappar från en lista med MD-kommandot och Anteckningar

Att förvandla en lista från Excel till mappar med MD-kommandot och Notepad är ett smart knep som blandar enkel batchscripting med Excels förmåga att hålla saker organiserade. Den här metoden är utmärkt för att göra massor av mappar snabbt, utan att behöva göra allt för hand. Här är en steg-för-steg-guide för att utföra denna uppgift:

Steg 1: Använd kommandot MD för att skapa formler

Kopiera eller skriv in följande formel i en tom cell bredvid ditt första cellvärde (till exempel B1) och dra sedan fyllningshandtaget nedåt för att tillämpa formeln på alla dina listobjekt.

="MD "&A1

Steg 2: Kopiera och klistra in formlerna i en Anteckningar-fil

  1. Presse Ctrl + C för att kopiera cellerna med MD-kommandoformeln.
  2. Öppen Anteckningar och tryck Ctrl + V för att klistra in kommandona i en ny fil.

Steg 3: Spara Notepad-filen som .bat-fil

Klicka Spara som från Fil fliken i Anteckningar, i Spara som dialogrutan, välj en katalog där du vill skapa flera mappar och ge den här filen ett namn med en . Bat förlängning. Klicka slutligen Save knapp. Se skärmdump:

Steg 4: Dubbelklicka på .bat-filen för att skapa flera mappar

  1. Stäng Notepad-filen, navigera till mappen där du tidigare sparade .bat-filen.
  2. Bevittna nu magin: dubbelklicka på filen så kommer du att se flera mappar skapas samtidigt. Se demon nedan:
 

Skapa mappar från en lista med hjälp av kraftfullt verktyg – Kutools för Excel

Med den kraftfulla Kutools för ExcelÄr Skapa mappar från cellinnehåll funktionen kan du nu enkelt och snabbt skapa mappar från en Excel-lista. Men det stannar inte bara vid grundläggande mappar; Kutools låter dig också skapa komplexa strukturer med undermappar på flera nivåer på en gång. Bara några enkla steg kan omvandla data från Excel till ett organiserat mappsystem, vilket avsevärt ökar din produktivitet.

Anmärkningar: Om du vill använda detta Skapa mappar från cellinnehåll funktion, tack ladda ner och installera Kutools för Excel först.

När du har installerat Kutools för Excel, Klicka Kutools Plus > Import Export > Skapa mappar från cellinnehåll att öppna Skapa mappar från cellinnehåll dialog ruta:

  1. Välj de cellvärden du vill skapa mappar baserat på;
  2. Klicka sedan på knappen för att ange destinationsmappen du vill spara mapparna;
  3. Slutligen klickar du på OK knapp.

Resultat:

Kutools kommer att bearbeta listan från ditt ark och skapa en mapp för varje post i den angivna destinationen. Navigera till målmappen för att se resultatet. Se skärmdump:

Tips:
  1. Denna användbara funktion kan också hjälpa till skapa mappar tillsammans med deras undermappar som du behöver. För att göra detta bör du ange önskade mapp- och undermappnamn i cellerna, med hjälp av omvänt snedstreck (\) för att separera varje nivå. Innehållet i varje cell kommer att fungera som en guide för att ställa in önskad struktur för mappar och undermappar.

    Applicera sedan Skapa mappar från cellinnehåll kommer alla mappar tillsammans med deras undermappar att skapas framgångsrikt. Se skärmdump:
  2. För att tillämpa den här funktionen, vänligen ladda ner och installera Kutools för Excel först.
 

Skapa mappar från en lista med hjälp av VBA-kod

Att använda VBA-kod i Excel kan förvandla den tråkiga uppgiften att skapa mappar från en lista till en snabb, automatiserad process. Det här avsnittet visar hur du använder VBA-kod för att skapa mappar.

Steg 1: Öppna VBA-modulredigeraren och kopiera koden

  1. Håll ner ALT + F11 nycklar i Excel, och det öppnar Microsoft Visual Basic för applikationer fönster.
  2. Klicka Insert > Modulernaoch klistra in följande kod i Modulerna Fönster.
    VBA-kod: Skapa mappar baserat på en lista med cellvärden
    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
    

Steg 2: Kör koden

  1. När du har klistrat in den här koden, tryck på F5 nyckel för att köra den här koden. I uppmaningsrutan väljer du cellvärdena som du vill skapa mappar från. Och klicka sedan OK.
  2. Sedan i det följande Välj målmapp fönstret, ange destinationssökvägen för att mata ut de skapade mapparna. Och klicka sedan OK knapp, se skärmdump:

Resultat:

Efter att ha kört VBA-koden, gå över till destinationskatalogen för att se resultatet. Där hittar du de nyskapade mapparna, som var och en motsvarar ett objekt från din Excel-lista. se skärmdump:

Tips:
  1. Om det finns dubbla poster i cellerna, kommer körning av koden att resultera i att endast en mapp skapas för dessa dubbletter.
  2. Om du märker att du använder den här koden ofta, överväg att spara din arbetsbok i Excel Macro-Enabled arbetsbok formatera. Den här åtgärden bevarar koden i arbetsboken, så att du kan köra den direkt i framtiden utan att behöva skriva in eller importera koden igen.

Skapa mappar och undermappar baserat på cellvärden med VBA-kod

Ibland kan du hamna i en situation där du behöver generera inte bara mappar utan också deras motsvarande undermappar, allt baserat på data i Excel-celler. För att uppnå denna uppgift kommer jag här att introducera en VBA-kod.

Steg 1: Förbered data

Först bör du ange data enligt följande skärmdump, placera huvudmappnamnen i den första kolumnen och namnen för undermapparna i den andra kolumnen.

Steg 2: Öppna VBA-modulredigeraren och kopiera koden

  1. Håll ner ALT + F11 nycklar i Excel, och det öppnar Microsoft Visual Basic för applikationer fönster.
  2. Klicka Insert > Modulernaoch klistra in följande kod i Modulerna Fönster.
    VBA-kod: Skapa mappar och undermappar baserade cellvärden
    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
    

Steg 3: Kör koden

  1. När du har klistrat in den här koden, tryck på F5 nyckel för att köra den här koden. I uppmaningsrutan väljer du cellvärdena som du vill skapa mappar från. Och klicka sedan OK.
  2. I följande utfällda fönster, ange destinationssökvägen för att mata ut de skapade mapparna. Och klicka sedan OK knapp, se skärmdump:

Resultat:

Efter att ha kört VBA-koden, gå till destinationskatalogen för att se resultatet. Du kommer att upptäcka att mapparna och deras respektive undermappar, som dikteras av cellvärdena, har skapats framgångsrikt enligt följande skärmdump:

Tips:
  1. Den här koden är endast tillgänglig för att bara skapa huvudmapparna och deras undermappar på första nivån.
  2. Om du märker att du använder den här koden ofta, överväg att spara din arbetsbok i Excel Macro-Enabled arbetsbok formatera. Den här åtgärden bevarar koden i arbetsboken, så att du kan köra den direkt i framtiden utan att behöva skriva in eller importera koden igen.

Relaterade artiklar:

  • Lista alla mappar och undermappar i Excel
  • Har du någonsin drabbats av detta problem som listar alla mappar och undermappar från en viss katalog i ett kalkylblad? I Excel finns det inget snabbt och praktiskt sätt att få namnet på alla mappar i en viss katalog samtidigt. För att hantera uppgiften kan den här artikeln hjälpa dig.
  • Kopiera eller flytta filer från en mapp till en annan baserat på en lista
  • Om du har en lista med filnamn i en kolumn i ett kalkylblad och filerna finns i en mapp i din dator. Men nu måste du flytta eller kopiera dessa filer, vilka namn listas i kalkylbladet från sin ursprungliga mapp till en annan enligt följande skärmdump. Hur kunde du slutföra den här uppgiften så fort du kan i Excel?
  • Byt namn på flera filer i en mapp
  • Det kan hända att de flesta av oss drabbas av detta problem att vi behöver byta namn på flera filer i en mapp, för att byta namn på filnamnen en efter en kommer att göra oss galna om det finns hundratals eller tusentals filer i den mappen. Finns det några bra funktioner för oss att hantera denna uppgift?
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