Vai al contenuto principale

Crea più cartelle e sottocartelle da un elenco di dati in Excel

Autore: Xiaoyang Ultima modifica: 2024-03-01

Supponiamo di avere un elenco di nomi del personale all'interno di un intervallo di fogli di lavoro e di mirare a creare cartelle individuali per ciascuno in cui archiviare le relative informazioni. La creazione manuale di ciascuna cartella può richiedere molto tempo. Tuttavia, esistono metodi efficaci per accelerare questo processo. In questa guida condividerò diversi approcci per generare rapidamente cartelle in base ai valori di cella specificati.

Crea cartelle in base ai valori delle celle

Crea cartelle e sottocartelle in base ai valori delle celle con codice VBA


Crea cartelle in base ai valori delle celle

In questa sezione esploreremo vari metodi in dettaglio, offrendo istruzioni dettagliate passo passo per creare cartelle in modo rapido e semplice in base a un elenco di valori di cella.

Crea cartelle da un elenco utilizzando il comando MD e il Blocco note

Trasformare un elenco da Excel in cartelle utilizzando il comando MD e Blocco note è un trucco intelligente che unisce un semplice scripting batch con l'abilità di Excel di mantenere le cose organizzate. Questo metodo è ottimo per creare velocemente tante cartelle, senza dover fare tutto a mano. Ecco una guida passo passo per eseguire questa attività:

Passaggio 1: utilizzare il comando MD per creare formule

Copia o inserisci la seguente formula in una cella vuota accanto al primo valore della cella (B1, ad esempio), quindi trascina verso il basso la maniglia di riempimento per applicare la formula a tutti gli elementi dell'elenco.

="MD "&A1

Passaggio 2: copia e incolla le formule in un file di Blocco note

  1. Rassegna Stampa Ctrl + C per copiare le celle con la formula del comando MD.
  2. Apri Notepad e premere Ctrl + V per incollare i comandi in un nuovo file.

Passaggio 3: salva il file del Blocco note come file .bat

Clicchi Salva con nome dal Compila il scheda nel Blocco note, nel file Salva con nome finestra di dialogo, scegli una directory in cui desideri creare più cartelle, quindi dai un nome a questo file con a bat estensione. Infine, fai clic Risparmi pulsante. Vedi screenshot:

Passaggio 4: fare doppio clic sul file .bat per generare più cartelle

  1. Chiudi il file Blocco note, vai alla cartella in cui hai precedentemente salvato il file .bat.
  2. Ora, assisti alla magia: fai doppio clic sul file e vedrai più cartelle create contemporaneamente. Guarda la demo qui sotto:
 

Crea cartelle da un elenco utilizzando un potente strumento: Kutools per Excel

Con i potenti Kutools for Excel'S Crea cartelle dal contenuto delle celle funzionalità, ora puoi creare facilmente e rapidamente cartelle da un elenco Excel. Ma non si ferma solo alle cartelle di base; Kutools ti consente anche di creare strutture complesse con sottocartelle multilivello in una volta sola. Bastano pochi semplici passaggi per trasformare i dati di Excel in un sistema di cartelle organizzato, aumentando significativamente la tua produttività.

Note:: Se vuoi usare questo Crea cartelle dal contenuto delle celle caratteristica, per favore scarica e installa Kutools per Excel prima.

Dopo l'installazione Kutools for Excel, Si prega di fare clic su Kutools Plus > Importa / Esporta > Crea cartelle dal contenuto delle celle per aprire il Crea cartelle dal contenuto delle celle la finestra di dialogo:

  1. Seleziona i valori della cella su cui desideri creare le cartelle;
  2. Quindi, fare clic su pulsante per specificare la cartella di destinazione in cui si desidera salvare le cartelle;
  3. Infine, fare clic OK pulsante.

Risultato:

Kutools elaborerà l'elenco dal tuo foglio e creerà una cartella per ogni voce nella destinazione specificata. Passare alla cartella di destinazione per vedere il risultato. Vedi schermata:

Suggerimenti:
  1. Questa utile funzionalità può anche essere d'aiuto creare cartelle insieme alle relative sottocartelle di cui hai bisogno. Per fare ciò, inserisci i nomi delle cartelle e delle sottocartelle desiderate nelle celle, utilizzando il segno barra rovesciata (\) per separare ciascun livello. Il contenuto di ciascuna cella fungerà da guida per impostare la struttura desiderata di cartelle e sottocartelle.

    Quindi, applicare il Crea cartelle dal contenuto delle celle funzione, tutte le cartelle insieme alle relative sottocartelle verranno create correttamente. Vedi schermata:
  2. Per applicare questa funzione, per favore scarica e installa Kutools per Excel prima.
 

Crea cartelle da un elenco utilizzando il codice VBA

L'utilizzo del codice VBA in Excel può trasformare il noioso compito di creare cartelle da un elenco in un processo rapido e automatizzato. Questa sezione ti mostrerà come applicare il codice VBA per generare cartelle.

Passaggio 1: apri l'editor del modulo VBA e copia il codice

  1. Tenere premuto il tasto ALT + F11 chiavi in ​​Excel e apre il file Microsoft Visual Basic, Applications Edition finestra.
  2. Clicchi inserire > Modulie incolla il codice seguente nel file Moduli Finestra.
    Codice VBA: crea cartelle in base a un elenco di valori di cella
    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
    

Passaggio 2: eseguire il codice

  1. Dopo aver incollato questo codice, premere F5 chiave per eseguire questo codice. Nella finestra di messaggio, seleziona i valori della cella da cui desideri creare le cartelle. E poi, fai clic OK.
  2. Poi, nel seguito Seleziona la cartella di destinazione finestra, specificare il percorso di destinazione per l'output delle cartelle create. E poi, fai clic OK pulsante, vedi screenshot:

Risultato:

Dopo aver eseguito il codice VBA, vai alla directory di destinazione per visualizzare il risultato. Lì troverai le cartelle appena create, ciascuna corrispondente a un elemento dal tuo elenco Excel. vedi schermata:

Suggerimenti:
  1. Se nelle celle sono presenti voci duplicate, l'esecuzione del codice comporterà la creazione di una sola cartella per tali duplicati.
  2. Se ti ritrovi a utilizzare frequentemente questo codice, valuta la possibilità di salvare la cartella di lavoro in Cartella di lavoro con attivazione macro di Excel formato. Questa azione preserva il codice all'interno della cartella di lavoro, consentendoti di eseguirlo direttamente in futuro senza la necessità di reinserire o reimportare il codice.

Crea cartelle e sottocartelle in base ai valori delle celle con codice VBA

Occasionalmente, potresti trovarti in una situazione in cui devi generare non solo cartelle, ma anche le relative sottocartelle, tutte basate sui dati all'interno delle celle di Excel. Per raggiungere questo compito, qui introdurrò un codice VBA.

Passaggio 1: preparare i dati

Innanzitutto, dovresti inserire i dati come mostrato nella seguente schermata, posizionare i nomi delle cartelle principali nella prima colonna e i nomi delle sottocartelle nella seconda colonna.

Passaggio 2: apri l'editor del modulo VBA e copia il codice

  1. Tenere premuto il tasto ALT + F11 chiavi in ​​Excel e apre il file Microsoft Visual Basic, Applications Edition finestra.
  2. Clicchi inserire > Modulie incolla il codice seguente nel file Moduli Finestra.
    Codice VBA: crea cartelle e sottocartelle in base ai valori delle celle
    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
    

Passaggio 3: eseguire il codice

  1. Dopo aver incollato questo codice, premere F5 chiave per eseguire questo codice. Nella finestra di messaggio, seleziona i valori della cella da cui desideri creare le cartelle. E poi, fai clic OK.
  2. Nella finestra visualizzata di seguito, specificare il percorso di destinazione per l'output delle cartelle create. E poi, fai clic OK pulsante, vedi screenshot:

Risultato:

Dopo aver eseguito il codice VBA, vai alla directory di destinazione per visualizzare il risultato. Scoprirai che le cartelle e le rispettive sottocartelle, come dettato dai valori della cella, sono state create con successo come mostrato nella seguente schermata:

Suggerimenti:
  1. Questo codice è disponibile solo per creare solo le cartelle principali e le relative sottocartelle di primo livello.
  2. Se ti ritrovi a utilizzare frequentemente questo codice, valuta la possibilità di salvare la cartella di lavoro in Cartella di lavoro con attivazione macro di Excel formato. Questa azione preserva il codice all'interno della cartella di lavoro, consentendoti di eseguirlo direttamente in futuro senza la necessità di reinserire o reimportare il codice.

Articoli Correlati:

  • Elenca tutte le cartelle e le sottocartelle in Excel
  • Hai mai sofferto di questo problema che elenca tutte le cartelle e le sottocartelle da una directory specificata in un foglio di lavoro? In Excel, non esiste un modo rapido e pratico per ottenere contemporaneamente il nome di tutte le cartelle in una directory specifica. Per affrontare l'attività, questo articolo potrebbe aiutarti.
  • Copia o sposta file da una cartella all'altra in base a un elenco
  • Se si dispone di un elenco di nomi di file in una colonna in un foglio di lavoro e i file si trovano in una cartella nel computer. Ma, ora, è necessario spostare o copiare questi file i cui nomi sono elencati nel foglio di lavoro dalla loro cartella originale a un'altra come mostrato nella seguente schermata. Come hai potuto completare questa attività il più rapidamente possibile in Excel?
  • Rinominare più file di una cartella
  • Forse la maggior parte di noi soffre di questo problema che dobbiamo rinominare più file in una cartella, rinominare i nomi dei file uno per uno ci farà impazzire se ci sono centinaia o migliaia di file in quella cartella. Ci sono buone funzioni per noi per affrontare questo compito?
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