Bỏ qua nội dung chính

Tạo nhiều thư mục và thư mục con từ danh sách dữ liệu trong Excel

Giả sử bạn có một danh sách tên nhân viên trong một phạm vi trang tính và nhằm mục đích tạo các thư mục riêng lẻ cho mỗi tên để lưu trữ thông tin của họ. Việc tạo thủ công từng thư mục có thể tốn thời gian. Tuy nhiên, có những phương pháp hiệu quả để đẩy nhanh quá trình này. Trong hướng dẫn này, tôi sẽ chia sẻ một số phương pháp để tạo nhanh các thư mục dựa trên các giá trị ô được chỉ định.

Tạo thư mục dựa trên giá trị ô

Tạo thư mục và thư mục con dựa trên giá trị ô bằng mã VBA


Tạo thư mục dựa trên giá trị ô

Trong phần này, chúng ta sẽ khám phá chi tiết các phương pháp khác nhau, đưa ra hướng dẫn từng bước toàn diện để tạo thư mục dựa trên danh sách các giá trị ô một cách nhanh chóng và dễ dàng.

Tạo thư mục từ danh sách bằng lệnh MD và Notepad

Chuyển danh sách từ Excel thành các thư mục bằng lệnh MD và Notepad là một thủ thuật thông minh kết hợp tập lệnh hàng loạt dễ dàng với sở trường của Excel để sắp xếp mọi thứ. Phương pháp này rất tốt để tạo nhiều thư mục một cách nhanh chóng mà không cần phải thực hiện tất cả bằng tay. Dưới đây là hướng dẫn từng bước để hoàn thành nhiệm vụ này:

Bước 1: Sử dụng lệnh MD để tạo công thức

Sao chép hoặc nhập công thức sau vào ô trống bên cạnh giá trị ô đầu tiên của bạn (ví dụ: B1), sau đó kéo núm điều khiển điền xuống để áp dụng công thức cho tất cả các mục trong danh sách của bạn.

="MD "&A1

Bước 2: Sao chép và dán công thức vào file Notepad

  1. Ấn Bản Ctrl + C để sao chép các ô bằng công thức lệnh MD.
  2. Mở Notepad và báo chí Ctrl + V để dán các lệnh vào một tập tin mới.

Bước 3: Lưu file Notepad dưới dạng file .bat

Nhấp chuột Tiết kiệm như từ Tập tin trong Notepad, trong Tiết kiệm như hộp thoại, chọn thư mục mà bạn muốn tạo nhiều thư mục, sau đó đặt tên cho tệp này bằng một . Bát sự mở rộng. Cuối cùng, nhấp vào Lưu cái nút. Xem ảnh chụp màn hình:

Bước 4: Nhấp đúp chuột vào file .bat để tạo nhiều thư mục

  1. Đóng file Notepad lại, điều hướng đến thư mục mà trước đó bạn đã lưu file .bat.
  2. Bây giờ, hãy chứng kiến ​​điều kỳ diệu: nhấp đúp vào tệp và bạn sẽ thấy nhiều thư mục được tạo cùng một lúc. Xem bản demo bên dưới:
 

Tạo thư mục từ danh sách bằng cách sử dụng công cụ mạnh mẽ – Kutools for Excel

Với sức mạnh Kutools cho Excel'S Tạo thư mục từ nội dung ô tính năng này, giờ đây bạn có thể dễ dàng và nhanh chóng tạo các thư mục từ danh sách Excel. Nhưng nó không chỉ dừng lại ở các thư mục cơ bản; Kutools cũng cho phép bạn tạo các cấu trúc phức tạp với các thư mục con nhiều cấp chỉ trong một lần. Chỉ một vài bước đơn giản có thể chuyển đổi dữ liệu từ Excel thành hệ thống thư mục có tổ chức, giúp tăng năng suất của bạn một cách đáng kể.

Chú thích: Nếu bạn muốn sử dụng cái này Tạo thư mục từ nội dung ô tính năng, xin vui lòng tải xuống và cài đặt Kutools cho Excel đầu tiên.

Sau khi cài đặt Kutools cho Excel, Xin vui lòng bấm vào Kutools Plus > Nhập khẩu xuất khẩu > Tạo thư mục từ nội dung ô để mở Tạo thư mục từ nội dung ô hộp thoại:

  1. Chọn các giá trị ô mà bạn muốn dựa trên đó để tạo thư mục;
  2. Sau đó, nhấp vào nút để chỉ định thư mục đích mà bạn muốn lưu các thư mục đó;
  3. Cuối cùng, nhấp OK .

Kết quả:

Kutools sẽ xử lý danh sách từ trang tính của bạn và tạo một thư mục cho mỗi mục nhập ở đích được chỉ định. Điều hướng đến thư mục đích để xem kết quả. Xem ảnh chụp màn hình:

Lời khuyên:
  1. Tính năng hữu ích này cũng có thể giúp tạo các thư mục cùng với các thư mục con của chúng như bạn cần. Để thực hiện, bạn nên nhập tên thư mục và thư mục con mong muốn vào các ô, sử dụng dấu gạch chéo ngược (\) để phân tách từng cấp độ. Nội dung của mỗi ô sẽ đóng vai trò như một hướng dẫn để thiết lập cấu trúc thư mục và thư mục con mong muốn.

    Sau đó, áp dụng Tạo thư mục từ nội dung ô tính năng này, tất cả các thư mục cùng với các thư mục con của chúng sẽ được tạo thành công. Xem ảnh chụp màn hình:
  2. Để áp dụng tính năng này, vui lòng tải xuống và cài đặt Kutools cho Excel đầu tiên.
 

Tạo thư mục từ danh sách bằng cách sử dụng mã VBA

Sử dụng mã VBA trong Excel có thể chuyển đổi công việc tẻ nhạt là tạo thư mục từ danh sách thành một quy trình tự động, nhanh chóng. Phần này sẽ hướng dẫn bạn cách áp dụng mã VBA để tạo thư mục.

Bước 1: Mở trình chỉnh sửa mô-đun VBA và sao chép mã

  1. Giữ phím tắt ALT + F11 các phím trong Excel và nó sẽ mở Microsoft Visual Basic cho các ứng dụng cửa sổ.
  2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Mô-đun Cửa sổ.
    Mã VBA: Tạo thư mục dựa trên danh sách các giá trị ô
    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
    

Bước 2: Thực thi mã

  1. Sau khi dán mã này, vui lòng nhấn F5 chìa khóa để chạy mã này. Trong hộp nhắc, chọn giá trị ô mà bạn muốn tạo thư mục từ đó. Và sau đó, nhấp vào OK.
  2. Sau đó, ở phần sau Chọn thư mục đích cửa sổ, chỉ định đường dẫn đích để xuất các thư mục đã tạo. Và sau đó, nhấp vào OK nút, xem ảnh chụp màn hình:

Kết quả:

Sau khi thực thi mã VBA, hãy đi tới thư mục đích để xem kết quả. Ở đó, bạn sẽ tìm thấy các thư mục mới được tạo, mỗi thư mục tương ứng với một mục trong danh sách Excel của bạn. xem ảnh chụp màn hình:

Lời khuyên:
  1. Nếu có các mục trùng lặp trong các ô, việc chạy mã sẽ chỉ tạo ra một thư mục cho các mục trùng lặp đó.
  2. Nếu bạn thấy mình thường xuyên sử dụng mã này, hãy cân nhắc việc lưu sổ làm việc của bạn vào Sổ làm việc hỗ trợ macro Excel định dạng. Hành động này sẽ bảo toàn mã trong sổ làm việc, cho phép bạn trực tiếp thực thi mã đó trong tương lai mà không cần phải nhập lại hoặc nhập lại mã.

Tạo thư mục và thư mục con dựa trên giá trị ô bằng mã VBA

Đôi khi, bạn có thể thấy mình rơi vào tình huống cần tạo không chỉ các thư mục mà còn cả các thư mục con tương ứng của chúng, tất cả đều dựa trên dữ liệu trong các ô Excel. Để đạt được nhiệm vụ này, ở đây tôi sẽ giới thiệu mã VBA.

Bước 1: Chuẩn bị dữ liệu

Trước tiên, bạn nên nhập dữ liệu như ảnh chụp màn hình sau, đặt tên thư mục chính vào cột đầu tiên và tên cho các thư mục con ở cột thứ hai.

Bước 2: Mở trình chỉnh sửa mô-đun VBA và sao chép mã

  1. Giữ phím tắt ALT + F11 các phím trong Excel và nó sẽ mở Microsoft Visual Basic cho các ứng dụng cửa sổ.
  2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Mô-đun Cửa sổ.
    Mã VBA: Tạo giá trị ô dựa trên thư mục và thư mục con
    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
    

Bước 3: Thực thi mã

  1. Sau khi dán mã này, vui lòng nhấn F5 chìa khóa để chạy mã này. Trong hộp nhắc, chọn giá trị ô mà bạn muốn tạo thư mục từ đó. Và sau đó, nhấp vào OK.
  2. Trong cửa sổ bật ra sau, chỉ định đường dẫn đích để xuất các thư mục đã tạo. Và sau đó, nhấp vào OK nút, xem ảnh chụp màn hình:

Kết quả:

Sau khi thực thi mã VBA, hãy chuyển đến thư mục đích để xem kết quả. Bạn sẽ thấy rằng các thư mục và thư mục con tương ứng của chúng, theo quy định của các giá trị ô, đã được tạo thành công như ảnh chụp màn hình sau:

Lời khuyên:
  1. Mã này chỉ có sẵn để tạo các thư mục chính và các thư mục con cấp đầu tiên của chúng.
  2. Nếu bạn thấy mình thường xuyên sử dụng mã này, hãy cân nhắc việc lưu sổ làm việc của bạn vào Sổ làm việc hỗ trợ macro Excel định dạng. Hành động này sẽ bảo toàn mã trong sổ làm việc, cho phép bạn trực tiếp thực thi mã đó trong tương lai mà không cần phải nhập lại hoặc nhập lại mã.

Bài viết liên quan:

  • Liệt kê tất cả các thư mục và thư mục con trong Excel
  • Bạn đã bao giờ gặp phải vấn đề liệt kê tất cả các thư mục và thư mục con từ một thư mục cụ thể vào một trang tính chưa? Trong Excel, không có cách nào nhanh chóng và tiện dụng để lấy tên của tất cả các thư mục trong một thư mục cụ thể cùng một lúc. Để giải quyết công việc, bài viết này có thể giúp bạn.
  • Sao chép hoặc di chuyển tệp từ thư mục này sang thư mục khác dựa trên danh sách
  • Nếu bạn có danh sách tên tệp trong một cột trong trang tính và các tệp nằm trong một thư mục trong trình biên dịch của bạn. Tuy nhiên, bây giờ, bạn cần phải di chuyển hoặc sao chép các tệp này có tên được liệt kê vào trang tính từ thư mục gốc của chúng sang một tệp khác như ảnh chụp màn hình sau. Làm cách nào bạn có thể hoàn thành công việc này nhanh nhất có thể trong Excel?
  • Đổi tên nhiều tập tin của một thư mục
  • Có thể hầu hết chúng ta đều gặp phải vấn đề này là chúng ta cần phải đổi tên nhiều tệp trong một thư mục, đổi tên lần lượt từng tên tệp sẽ khiến chúng ta phát điên nếu có hàng trăm hoặc hàng nghìn tệp trong thư mục đó. Có chức năng nào tốt để chúng tôi giải quyết công việc này không?
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