Ir para o conteúdo principal

Crie várias pastas e subpastas a partir de uma lista de dados no Excel

Suponha que você tenha uma lista de nomes de funcionários em um intervalo de planilhas e pretenda criar pastas individuais para cada um armazenar suas informações. A criação manual de cada pasta pode ser demorada. No entanto, existem métodos eficientes para agilizar esse processo. Neste guia, compartilharei várias abordagens para gerar pastas rapidamente com base nos valores de células especificados.

Crie pastas com base nos valores das células

Crie pastas e subpastas com base em valores de células com código VBA


Crie pastas com base nos valores das células

Nesta seção, exploraremos vários métodos em detalhes, oferecendo instruções passo a passo abrangentes para criar pastas com rapidez e facilidade com base em uma lista de valores de células.

Crie pastas de uma lista usando o comando MD e o Bloco de Notas

Transformar uma lista do Excel em pastas usando o comando MD e o Bloco de Notas é um truque inteligente que combina scripts em lote fáceis com a habilidade do Excel para manter as coisas organizadas. Esse método é ótimo para criar muitas pastas rapidamente, sem precisar fazer tudo manualmente. Aqui está um guia passo a passo para realizar esta tarefa:

Etapa 1: use o comando MD para criar fórmulas

Copie ou insira a seguinte fórmula em uma célula em branco próxima ao valor da primeira célula (B1, por exemplo) e arraste a alça de preenchimento para baixo para aplicar a fórmula a todos os itens da lista.

="MD "&A1

Etapa 2: copie e cole as fórmulas em um arquivo do Bloco de Notas

  1. Press Ctrl + C para copiar as células com a fórmula do comando MD.
  2. Abra Bloco de notas e imprensa Ctrl + V para colar os comandos em um novo arquivo.

Etapa 3: salve o arquivo do Bloco de notas como arquivo .bat

Clique Salvar como do Envie o guia no Bloco de Notas, na Salvar como caixa de diálogo, escolha um diretório onde deseja criar várias pastas e, em seguida, dê um nome para esse arquivo com um .bat extensão. Por fim, clique Salvar botão. Veja a imagem:

Etapa 4: clique duas vezes no arquivo .bat para gerar várias pastas

  1. Feche o arquivo do Bloco de Notas, navegue até a pasta onde você salvou anteriormente o arquivo .bat.
  2. Agora, testemunhe a mágica: clique duas vezes no arquivo e você verá várias pastas sendo criadas de uma só vez. Veja a demonstração abaixo:
 

Crie pastas a partir de uma lista usando uma ferramenta poderosa – Kutools para Excel

Com o poderoso Kutools for Excel'S Criar pastas a partir do conteúdo da célula recurso, agora você pode criar pastas de maneira fácil e rápida a partir de uma lista do Excel. Mas isso não se limita apenas às pastas básicas; Kutools também permite criar estruturas complexas com subpastas de vários níveis de uma só vez. Apenas alguns passos simples podem transformar dados do Excel em um sistema de pastas organizado, aumentando significativamente sua produtividade.

Note: Se você quiser usar isso Criar pastas a partir do conteúdo da célula característica, por favor baixe e instale o Kutools para Excel em primeiro lugar.

Depois de instalar Kutools for Excel, Por favor clique Kutools Plus > Importação / Exportação > Criar pastas a partir do conteúdo da célula para abrir o Criar pastas a partir do conteúdo da célula caixa de diálogo:

  1. Selecione os valores das células nos quais deseja criar pastas;
  2. Em seguida, clique no botão botão para especificar a pasta de destino onde deseja salvar as pastas;
  3. Finalmente, clique em OK botão.

Resultado:

O Kutools processará a lista da sua planilha e criará uma pasta para cada entrada no destino especificado. Navegue até a pasta de destino para ver o resultado. Veja a captura de tela:

Dicas:
  1. Este recurso útil também pode ajudar a crie pastas junto com suas subpastas como você precisa. Para fazer isso, você deve inserir os nomes das pastas e subpastas desejadas nas células, usando a barra invertida (\) para separar cada nível. O conteúdo de cada célula servirá de guia para configurar a estrutura desejada de pastas e subpastas.

    Em seguida, aplique o Criar pastas a partir do conteúdo da célula recurso, todas as pastas junto com suas subpastas serão criadas com sucesso. Veja a captura de tela:
  2. Para aplicar este recurso, por favor baixe e instale o Kutools para Excel em primeiro lugar.
 

Crie pastas de uma lista usando código VBA

Usar o código VBA no Excel pode transformar a tediosa tarefa de criar pastas a partir de uma lista em um processo rápido e automatizado. Esta seção mostrará como aplicar o código VBA para gerar pastas.

Passo 1: Abra o editor do módulo VBA e copie o código

  1. Mantenha pressionada a ALT + F11 chaves no Excel, e abre o Microsoft Visual Basic para Aplicações janela.
  2. Clique inserção > Móduloe cole o seguinte código no Módulo Janela.
    Código VBA: crie pastas com base em uma lista de valores de células
    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
    

Etapa 2: execute o código

  1. Depois de colar este código, pressione F5 chave para executar este código. Na caixa de prompt, selecione os valores das células a partir dos quais deseja criar pastas. E então, clique OK.
  2. Então, no seguinte Selecione a pasta de destino janela, especifique o caminho de destino para gerar as pastas criadas. E então, clique OK botão, veja a captura de tela:

Resultado:

Depois de executar o código VBA, vá até o diretório de destino para ver o resultado. Lá você encontrará as pastas recém-criadas, cada uma correspondendo a um item da sua lista do Excel. veja a captura de tela:

Dicas:
  1. Se houver entradas duplicadas nas células, a execução do código resultará na criação de apenas uma pasta para essas duplicatas.
  2. Se você usa esse código com frequência, considere salvar sua pasta de trabalho em Pasta de trabalho habilitada para macro do Excel formatar. Esta ação preserva o código dentro da pasta de trabalho, permitindo executá-lo diretamente no futuro, sem a necessidade de reinserir ou reimportar o código.

Crie pastas e subpastas com base em valores de células com código VBA

Ocasionalmente, você pode se encontrar em uma situação em que precisa gerar não apenas pastas, mas também suas subpastas correspondentes, todas com base nos dados das células do Excel. Para realizar esta tarefa, apresentarei aqui um código VBA.

Etapa 1: preparar os dados

Primeiro, você deve inserir os dados conforme a captura de tela mostrada a seguir, colocar os nomes das pastas principais na primeira coluna e os nomes das subpastas na segunda coluna.

Passo 2: Abra o editor do módulo VBA e copie o código

  1. Mantenha pressionada a ALT + F11 chaves no Excel, e abre o Microsoft Visual Basic para Aplicações janela.
  2. Clique inserção > Móduloe cole o seguinte código no Módulo Janela.
    Código VBA: crie pastas e subpastas com base em valores de células
    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
    

Etapa 3: execute o código

  1. Depois de colar este código, pressione F5 chave para executar este código. Na caixa de prompt, selecione os valores das células a partir dos quais deseja criar pastas. E então, clique OK.
  2. Na janela exibida a seguir, especifique o caminho de destino para gerar as pastas criadas. E então, clique OK botão, veja a captura de tela:

Resultado:

Após executar o código VBA, vá para o diretório de destino para visualizar o resultado. Você descobrirá que as pastas e suas respectivas subpastas, conforme ditado pelos valores das células, foram criadas com sucesso conforme a captura de tela mostrada a seguir:

Dicas:
  1. Este código está disponível apenas para criar apenas as pastas principais e suas subpastas de primeiro nível.
  2. Se você usa esse código com frequência, considere salvar sua pasta de trabalho em Pasta de trabalho habilitada para macro do Excel formatar. Esta ação preserva o código dentro da pasta de trabalho, permitindo executá-lo diretamente no futuro, sem a necessidade de reinserir ou reimportar o código.

Artigos relacionados:

  • Liste todas as pastas e subpastas no Excel
  • Você já sofreu com esse problema de listar todas as pastas e subpastas de um diretório especificado em uma planilha? No Excel, não existe uma maneira rápida e prática de obter o nome de todas as pastas em um diretório específico de uma só vez. Para lidar com a tarefa, este artigo pode ajudá-lo.
  • Copie ou mova arquivos de uma pasta para outra com base em uma lista
  • Se você tiver uma lista de nomes de arquivo em uma coluna em uma planilha, e os arquivos forem localizados em uma pasta em seu computador. Mas, agora, você precisa mover ou copiar esses arquivos cujos nomes estão listados na planilha de sua pasta original para outra como mostrado a seguir. Como você poderia terminar essa tarefa o mais rápido possível no Excel?
  • Renomeie vários arquivos de uma pasta
  • Pode ser que a maioria de nós sofra com este problema que precisamos renomear vários arquivos em uma pasta, renomear os nomes de arquivos um por um vai nos deixar loucos se houver centenas ou milhares de arquivos nessa pasta. Existem boas funções para lidarmos com essa tarefa?
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