Skip to main content

 How to list all filenames in a folder and create hyperlinks for them in Excel?

For your daily work, you may need to import multiple filenames from a folder to a worksheet, and create hyperlinks for each files so that open the file quickly and easily. Maybe, you can copy and paste the filenames and create a hyperlink for it one by one manually, but, this will waste much time if there are hundreds files in the folder. Today, I will talk about some quick and interesting methods to deal with this job.

List all filenames in a folder and create hyperlinks with VBA code

List all filenames in a folder and create hyperlinks with Kutools for Excel


To list and create hyperlink with files from a folder, the following VBA code can do you a favor.

1. Activate a new worksheet to put the result.

2. Hold down the ALT + F11 keys to open the Microsoft Visual Basic for Applications window.

3. Click Insert > Module, and paste the following code in the Module Window.

VBA: List all filenames in a folder and create hyperlinks

Sub Example1()
'Updateby Extendoffice
    Dim xFSO As Object 
    Dim xFolder As Object
    Dim xFile As Object
    Dim xFiDialog As FileDialog
    Dim xPath As String
    Dim I As Integer
    Set xFiDialog = Application.FileDialog(msoFileDialogFolderPicker)
    If xFiDialog.Show = -1 Then
        xPath = xFiDialog.SelectedItems(1)
    End If
    Set xFiDialog = Nothing
    If xPath = "" Then Exit Sub
    Set xFSO = CreateObject("Scripting.FileSystemObject")
    Set xFolder = xFSO.GetFolder(xPath)
    For Each xFile In xFolder.Files
        I = I + 1
        ActiveSheet.Hyperlinks.Add Cells(I, 1), xFile.Path, , , xFile.Name
    Next
End Sub

4. Then press F5 key to run this code, and choose the folder that you want to list the files from the Browse window, see screenshot:

doc list create hyperlinks 1

5. After specifying the folder, click OK button, and all the files in the specific folder have been listed into active worksheet with hyperlinks, see screenshot:

doc list create hyperlinks 2

Note: If there are subfolders in your specific folder, the files in the subfolders will not be listed.


To list all files both in a folder and its subfolders and created hyperlinks for each file, Kutools for Excel’s Filename List may do you a favor. With this feature, all files in folder and subfolders will be listed at once with some attributes, such as file name, file size, created time, containing folder and so on.

Kutools for Excel : with more than 300 handy Excel add-ins, free to try with no limitation in 30 days.

If you have installed Kutools for Excel, please do with following steps:

1. Click Kutools Plus > Import & Export > Filename List, see screenshot:

2. In the Filename List dialog box, please do the following operations:

(1.) Click doc list create hyperlinks 5 button to select the folder that you want to list the filenames;

(2.) Check Include files in subdirectories if you want to list filenames within subfolders, check Include hidden files and folders if you want to list the hidden files;

(3.) Specify the file types that you want to find and list under the Files type section;

(4.) Select the file size unit that you want to display;

(5.) Check Create hyperlinks at the left bottom of the dialog box.

Download Kutools for Excel Now !

3. Then click Ok button, and all the files in the folder and subfolders have been listed in a new worksheet with the hyperlinks as you need, see screenshot:

doc list create hyperlinks 6

Click to know more details about the Filename List utility…

Download and free trial Kutools for Excel Now !


Kutools for Excel: with more than 300 handy Excel add-ins, free to try with no limitation in 30 days. Download and free trial Now!

Related article:

How to list all files in folder and subfolders into a worksheet?

Best Office Productivity Tools

🤖 Kutools AI Aide: Revolutionize data analysis based on: Intelligent Execution   |  Generate Code  |  Create Custom Formulas  |  Analyze Data and Generate Charts  |  Invoke Kutools Functions
Popular Features: Find, Highlight or Identify Duplicates   |  Delete Blank Rows   |  Combine Columns or Cells without Losing Data   |   Round without Formula ...
Super Lookup: Multiple Criteria VLookup    Multiple Value VLookup  |   VLookup Across Multiple Sheets   |   Fuzzy Lookup ....
Advanced Drop-down List: Quickly Create Drop Down List   |  Dependent Drop Down List   |  Multi-select Drop Down List ....
Column Manager: Add a Specific Number of Columns  |  Move Columns  |  Toggle Visibility Status of Hidden Columns  |  Compare Ranges & Columns ...
Featured Features: Grid Focus   |  Design View   |   Big Formula Bar    Workbook & Sheet Manager   |  Resource Library (Auto Text)   |  Date Picker   |  Combine Worksheets   |  Encrypt/Decrypt Cells    Send Emails by List   |  Super Filter   |   Special Filter (filter bold/italic/strikethrough...) ...
Top 15 Toolsets12 Text Tools (Add Text, Remove Characters, ...)   |   50+ Chart Types (Gantt Chart, ...)   |   40+ Practical Formulas (Calculate age based on birthday, ...)   |   19 Insertion Tools (Insert QR Code, Insert Picture from Path, ...)   |   12 Conversion Tools (Numbers to Words, Currency Conversion, ...)   |   7 Merge & Split Tools (Advanced Combine Rows, Split Cells, ...)   |   ... and more

Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time.  Click Here to Get The Feature You Need The Most...

Description


Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
Comments (17)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
How can you change cell and column location? as I have data already in column A, I would like to change the macro to be in column N
This comment was minimized by the moderator on the site
Hello, Diego,
To put the result in Column N, please apply the below code:
Sub Example1()
'Updateby Extendoffice
    Dim xFSO As Object
    Dim xFolder As Object
    Dim xFile As Object
    Dim xFiDialog As FileDialog
    Dim xPath As String
    Dim I As Integer
    Set xFiDialog = Application.FileDialog(msoFileDialogFolderPicker)
    If xFiDialog.Show = -1 Then
        xPath = xFiDialog.SelectedItems(1)
    End If
    Set xFiDialog = Nothing
    If xPath = "" Then Exit Sub
    Set xFSO = CreateObject("Scripting.FileSystemObject")
    Set xFolder = xFSO.GetFolder(xPath)
    For Each xFile In xFolder.Files
        I = I + 1
        ActiveSheet.Hyperlinks.Add Cells(I, 14), xFile.Path, , , xFile.Name
    Next
End Sub


Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
Hallo zusammen,

ich habe eine bescheidene Frage:
Wie kann ich Eine Liste von Dateinamen in klickbare Links umwandeln query.
Es sind hier Beispiele genannt worden. Dies hat mich aber nicht weiter gebracht.
Hat wer eine Beispieldatei? Wie aus dem Bericht #28151.

Danke!
This comment was minimized by the moderator on the site
Hello friend,

After all the files in the specific folder have been listed in the active worksheet with hyperlinks, you can click the cells to open the hyperlinks. All the filenames are clickable. Please see the screenshots.

But I can't send you my example Excel file, because those hyperlinks listed in the file can only be opened from my own computers. Just use the method to create hyperlinks with files from your specific folder. After the filenames with hyperlinks are listed in a new file. Just click the hyperlinks to open them. Please have a try.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
@skyyang Hi,
Could this code be edited to hyperlink path for files instead of folders. For example, instead of hyperlinking the paths of the folders inside Folder1, it would hyperlink the paths of all files in Folder1 (i need the text to display as the path of the file, not the file name), that would be the perfect use case for me.
appreciate any help you could offer :)
This comment was minimized by the moderator on the site
How would I change this code to have it list folder names rather than file names? And how would I change it to check subfolders for files?
This comment was minimized by the moderator on the site
Hi, Ellie,
To list all folder and subfolder names from a directory, the below VBA code can help you, please try, hopt it can help you.

Sub FolderNames()
Application.ScreenUpdating = False
Dim xPath As String
Dim xWs As Worksheet
Dim fso As Object, j As Long, folder1 As Object
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Choose the folder"
.Show
End With
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Application.Workbooks.Add
Set xWs = Application.ActiveSheet
xWs.Cells(1, 1).Value = xPath
xWs.Cells(2, 1).Resize(1, 5).Value = Array("Path", "Dir", "Name", "Date Created", "Date Last Modified")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder1 = fso.getFolder(xPath)
getSubFolder folder1
xWs.Cells(2, 1).Resize(1, 5).Interior.Color = 65535
xWs.Cells(2, 1).Resize(1, 5).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Sub getSubFolder(ByRef prntfld As Object)
Dim SubFolder As Object
Dim subfld As Object
Dim xRow As Long
For Each SubFolder In prntfld.SubFolders
xRow = Range("A1").End(xlDown).Row + 1
Cells(xRow, 1).Resize(1, 5).Value = Array(SubFolder.Path, Left(SubFolder.Path, InStrRev(SubFolder.Path, "\")), SubFolder.Name, SubFolder.DateCreated, SubFolder.DateLastModified)
Next SubFolder
For Each subfld In prntfld.SubFolders
getSubFolder subfld
Next subfld
End Sub
This comment was minimized by the moderator on the site
How would you code this to make hyperlinks for path and directory
This comment was minimized by the moderator on the site
Hi, yuri,
To solve your problem, please try the following code:

Sub FolderNames()
Application.ScreenUpdating = False
Dim xPath As String
Dim xWs As Worksheet
Dim xRg As Range
Dim fso As Object, j As Long, folder1 As Object
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Choose the folder"
.Show
End With
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Application.Workbooks.Add
Set xWs = Application.ActiveSheet
Set xRg = xWs.Cells(1, 1)
xRg.Value = xPath
xWs.Hyperlinks.Add Anchor:=xRg, Address:=xPath, TextToDisplay:=xPath
xWs.Cells(2, 1).Resize(1, 5).Value = Array("Path", "Dir", "Name", "Date Created", "Date Last Modified")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder1 = fso.GetFolder(xPath)
getSubFolder folder1
xWs.Cells(2, 1).Resize(1, 5).Interior.Color = 65535
xWs.Cells(2, 1).Resize(1, 5).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Sub getSubFolder(ByRef prntfld As Object)
Dim SubFolder As Object
Dim subfld As Object
Dim xRow As Long
Dim xStr As String
Dim xRg As Range
For Each SubFolder In prntfld.SubFolders
xRow = Range("A1").End(xlDown).Row + 1
Cells(xRow, 1).Resize(1, 5).Value = Array(SubFolder.Path, Left(SubFolder.Path, InStrRev(SubFolder.Path, "\")), SubFolder.Name, SubFolder.DateCreated, SubFolder.DateLastModified)
Set xRg = Cells(xRow, 1)
xRg.Worksheet.Hyperlinks.Add Anchor:=xRg, Address:=xRg.Value, TextToDisplay:=xRg.Value
Set xRg = Cells(xRow, 2)
xRg.Worksheet.Hyperlinks.Add Anchor:=xRg, Address:=xRg.Value, TextToDisplay:=xRg.Value
Next SubFolder
For Each subfld In prntfld.SubFolders
getSubFolder subfld
Next subfld
End Sub
This comment was minimized by the moderator on the site
How do you display also the files. Not just folders and subfolders?
This comment was minimized by the moderator on the site
Hello, isabel,
To list file folder and file names, the following code may help you:
Option Explicit
Sub ListFoldersAndFilesWithDialog()
    Dim fso As Object
    Dim mainFolder As Object
    Dim ws As Worksheet
    Dim rowIndex As Long
    Dim folderPath As String
    ' Open folder picker dialog to select main folder path
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = -1 Then
            folderPath = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set mainFolder = fso.GetFolder(folderPath) 
    On Error Resume Next
    Set ws = ThisWorkbook.Sheets("FolderList")
    On Error GoTo 0  
    If ws Is Nothing Then
        Set ws = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        ws.Name = "FolderList"
    End If
    ws.Cells.Clear
    rowIndex = 1
    ws.Cells(rowIndex, 1).Value = "Folder Name"
    ws.Cells(rowIndex, 2).Value = "File Name"
    ListFilesInFolder mainFolder, ws, rowIndex + 1
End Sub

Sub ListFilesInFolder(ByVal folder As Object, ByVal ws As Worksheet, ByRef rowIndex As Long)
    Dim file As Object
    Dim subFolder As Object
    Dim linkAddress As String  
    For Each file In folder.Files
        ws.Cells(rowIndex, 1).Value = folder.Name
        ws.Cells(rowIndex, 2).Value = file.Name
        linkAddress = file.Path
        ws.Hyperlinks.Add Anchor:=ws.Cells(rowIndex, 2), Address:=linkAddress
        rowIndex = rowIndex + 1
    Next file
    
    For Each subFolder In folder.SubFolders
        ListFilesInSubFolder subFolder, ws, rowIndex
    Next subFolder
End Sub

Sub ListFilesInSubFolder(ByVal subFolder As Object, ByVal ws As Worksheet, ByRef rowIndex As Long)
    Dim file As Object
    Dim linkAddress As String 
    For Each file In subFolder.Files
        ws.Cells(rowIndex, 1).Value = subFolder.Name
        ws.Cells(rowIndex, 2).Value = file.Name
        linkAddress = file.Path
        ws.Hyperlinks.Add Anchor:=ws.Cells(rowIndex, 2), Address:=linkAddress
        rowIndex = rowIndex + 1
    Next file
    Dim subSubFolder As Object
    For Each subSubFolder In subFolder.SubFolders
        ListFilesInSubFolder subSubFolder, ws, rowIndex
    Next subSubFolder
End Sub


After copying and pasting the code, please click Tools > References, and then choose Microsoft Scripting Runtime from the Reference-VBAproject dialog box.
https://cdn.extendoffice.com/images/stories/comments/comment-skyyang/2023-comment/doc-list-files.png

And then, run the code.

Also, you can use our Kutools for Excel's Filename List feature to solve this job quickly and easily.


Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
@skyyang Hi,
Could this code be edited to hyperlink path for files instead of folders. For example, instead of hyperlinking the paths of the folders inside Folder1, it would hyperlink the paths of all files in Folder1 (i need the text to display as the path of the file, not the file name), that would be the perfect use case for me.
appreciate any help you could offer :)
This comment was minimized by the moderator on the site
@skyyang Hi,Could this code be edited to hyperlink path for files instead of folders. For example, instead of hyperlinking the paths of the folders inside Folder1, it would hyperlink the paths of all files in Folder1 (i need the text to display as the path of the file, not the file name), that would be the perfect use case for me. appreciate any help you could offer :)
This comment was minimized by the moderator on the site
"VBA: List all filenames in a folder and create hyperlinks" is great! It works perfectly! Thank you for posting! One question... Now that you told us how to add links from folder, is it possible to use those links to get information from say one or two different sheets in each of the files listed? They would be the same cells for each of the files we now have a list for. This would help create a comprehensive contents with active links to otherwise unintelligible file names.
This comment was minimized by the moderator on the site
Great thanks although can not view the files in the selected directory as barry said, it creates hyperlinks for all files in that directory anyway.
This comment was minimized by the moderator on the site
Awesome ..thanks a lot. It really saved my time.
This comment was minimized by the moderator on the site
Running the VBA code listed above, shows the selected directory is empty, when it is full of Excel files.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations