Перейти к основному содержанию

Создайте несколько папок и подпапок из списка данных в Excel.

Предположим, у вас есть список имен сотрудников в диапазоне рабочих листов и вы хотите создать для каждого отдельные папки для хранения их информации. Создание каждой папки вручную может занять много времени. Однако существуют эффективные методы ускорения этого процесса. В этом руководстве я расскажу о нескольких подходах к быстрому созданию папок на основе указанных значений ячеек.

Создание папок на основе значений ячеек

Создавайте папки и подпапки на основе значений ячеек с помощью кода VBA.


Создание папок на основе значений ячеек

В этом разделе мы подробно рассмотрим различные методы, предлагая подробные пошаговые инструкции для быстрого и легкого создания папок на основе списка значений ячеек.

Создайте папки из списка с помощью команды MD и Блокнота.

Преобразование списка из Excel в папки с помощью команды MD и Блокнота — это умный трюк, который сочетает в себе простоту пакетного написания сценариев с умением Excel поддерживать порядок. Этот метод отлично подходит для быстрого создания большого количества папок без необходимости делать все это вручную. Вот пошаговое руководство для выполнения этой задачи:

Шаг 1. Используйте команду MD для создания формул.

Скопируйте или введите следующую формулу в пустую ячейку рядом с первым значением ячейки (например, B1), а затем перетащите маркер заполнения вниз, чтобы применить формулу ко всем элементам списка.

="MD "&A1

Шаг 2. Скопируйте и вставьте формулы в файл Блокнота.

  1. Нажмите Ctrl + C скопировать ячейки с формулой команды MD.
  2. Откройте Блокнот и нажмите Ctrl + V чтобы вставить команды в новый файл.

Шаг 3. Сохраните файл Блокнота как файл .bat.

Нажмите Сохранить как из Файл вкладка в Блокноте, в Сохранить как диалоговом окне выберите каталог, в котором вы хотите создать несколько папок, а затем дайте имя этому файлу с помощью .bat расширение. Наконец, нажмите Сохранить кнопка. Смотрите скриншот:

Шаг 4. Дважды щелкните файл .bat, чтобы создать несколько папок.

  1. Закройте файл Блокнота и перейдите в папку, в которой ранее был сохранен файл .bat.
  2. Теперь станьте свидетелем волшебства: дважды щелкните файл, и вы увидите одновременное создание нескольких папок. Посмотрите демо ниже:
 

Создавайте папки из списка с помощью мощного инструмента – Kutools for Excel

С мощным Kutools for ExcelАвтора Создание папок из содержимого ячеек Благодаря этой функции теперь вы можете легко и быстро создавать папки из списка Excel. Но дело не ограничивается только базовыми папками; Kutools также позволяет создавать сложные структуры с многоуровневыми подпапками за один раз. Всего несколько простых шагов помогут преобразовать данные из Excel в организованную систему папок, что значительно повысит вашу производительность.

Внимание: Если вы хотите использовать это Создание папок из содержимого ячеек особенность, пожалуйста скачайте и установите Kutools для Excel первый.

После установки Kutools for Excel, Пожалуйста, нажмите Кутулс Плюс > Импорт / Экспорт > Создание папок из содержимого ячеек для открытия Создание папок из содержимого ячеек диалоговое окно:

  1. Выберите значения ячеек, на основе которых вы хотите создать папки;
  2. Затем нажмите кнопка для указания папки назначения, в которой вы хотите сохранить папки;
  3. Наконец, нажмите OK .

Результат:

Kutools обработает список с вашего листа и создаст папку для каждой записи в указанном месте назначения. Перейдите в папку назначения, чтобы увидеть результат. Смотрите скриншот:

Советы:
  1. Эта полезная функция также может помочь создавать папки вместе с их подпапками как вам нужно. Для этого вам следует ввести в ячейки нужные названия папок и подпапок, используя для разделения каждого уровня знак обратной косой черты (\). Содержимое каждой ячейки будет служить руководством для настройки желаемой структуры папок и подпапок.

    Затем примените Создание папок из содержимого ячеек функция, все папки вместе с их подпапками будут успешно созданы. Смотрите скриншот:
  2. Чтобы применить эту функцию, пожалуйста, скачайте и установите Kutools для Excel первый.
 

Создание папок из списка с помощью кода VBA

Использование кода VBA в Excel может превратить утомительную задачу создания папок из списка в быстрый автоматизированный процесс. В этом разделе показано, как применять код VBA для создания папок.

Шаг 1. Откройте редактор модулей VBA и скопируйте код.

  1. Удерживая нажатой ALT + F11 ключи в Excel, и он открывает Microsoft Visual Basic для приложений окно.
  2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.
    Код VBA: создание папок на основе списка значений ячеек
    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
    

Шаг 2. Выполните код

  1. После вставки этого кода нажмите F5 ключ для запуска этого кода. В поле подсказки выберите значения ячеек, из которых вы хотите создать папки. Затем нажмите OK.
  2. Затем в следующем Выберите папку назначения окне укажите путь назначения для вывода созданных папок. Затем нажмите OK кнопку, см. снимок экрана:

Результат:

После выполнения кода VBA перейдите в целевой каталог, чтобы просмотреть результат. Там вы найдете вновь созданные папки, каждая из которых соответствует элементу из вашего списка Excel. см. скриншот:

Советы:
  1. Если в ячейках есть повторяющиеся записи, запуск кода приведет к созданию только одной папки для этих дубликатов.
  2. Если вы часто используете этот код, рассмотрите возможность сохранения книги в Книга Excel с поддержкой макросов формат. Это действие сохраняет код в книге, что позволяет вам напрямую выполнять его в будущем без необходимости повторного ввода или повторного импорта кода.

Создавайте папки и подпапки на основе значений ячеек с помощью кода VBA.

Иногда вы можете оказаться в ситуации, когда вам нужно создать не только папки, но и соответствующие им подпапки, и все это на основе данных в ячейках Excel. Для решения этой задачи я представлю код VBA.

Шаг 1. Подготовьте данные

Сначала вам следует ввести данные, как показано на следующем снимке экрана, поместить имена основных папок в первый столбец и имена подпапок во второй столбец.

Шаг 2. Откройте редактор модулей VBA и скопируйте код.

  1. Удерживая нажатой ALT + F11 ключи в Excel, и он открывает Microsoft Visual Basic для приложений окно.
  2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.
    Код VBA: создание папок и подпапок на основе значений ячеек
    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
    

Шаг 3. Выполните код

  1. После вставки этого кода нажмите F5 ключ для запуска этого кода. В поле подсказки выберите значения ячеек, из которых вы хотите создать папки. Затем нажмите OK.
  2. В следующем всплывающем окне укажите путь назначения для вывода созданных папок. Затем нажмите OK кнопку, см. снимок экрана:

Результат:

После выполнения кода VBA перейдите в каталог назначения, чтобы просмотреть результат. Вы обнаружите, что папки и соответствующие им подпапки, в соответствии со значениями ячеек, были успешно созданы, как показано на следующем снимке экрана:

Советы:
  1. Этот код доступен только для создания только основных папок и их подпапок первого уровня.
  2. Если вы часто используете этот код, рассмотрите возможность сохранения книги в Книга Excel с поддержкой макросов формат. Это действие сохраняет код в книге, что позволяет вам напрямую выполнять его в будущем без необходимости повторного ввода или повторного импорта кода.

Статьи по теме:

  • Список всех папок и подпапок в Excel
  • Вы когда-нибудь сталкивались с этой проблемой, когда перечисляли все папки и подпапки из указанного каталога на листе? В Excel нет быстрого и удобного способа получить имена всех папок в определенном каталоге сразу. Разобраться с этой задачей может вам эта статья.
  • Копируйте или перемещайте файлы из одной папки в другую на основе списка.
  • Если у вас есть список имен файлов в столбце на листе, и файлы находятся в папке на вашем компьютере. Но теперь вам нужно переместить или скопировать эти файлы, имена которых указаны на листе, из их исходной папки в другую, как показано на следующем снимке экрана. Как вы могли выполнить эту задачу так быстро, как вы можете в Excel?
  • Переименование нескольких файлов в папке
  • Возможно, большинство из нас страдает от этой проблемы, когда нам нужно переименовать несколько файлов в папке, переименование имен файлов по одному сведет нас с ума, если в этой папке есть сотни или тысячи файлов. Есть ли у нас какие-нибудь хорошие функции для решения этой задачи?
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