Normally, har Excel ingen bygge i funksjon for å håndtere denne oppgaven, men kan du bruke følgende VBA-kode for å fullføre dette problemet.
1. Aktivere et nytt regneark som vil liste filnavnene.
To. Hold nede ALT + F11-tastene i Excel, og det åpner Microsoft Visual Basic for Applications vinduet.
3. Klikk Sett > Modul, og lim inn følgende kode i modulen Window
VBA-kode: List alle filnavn i mappen og undermappe
Sub MainList () 'Updateby20150706Set folder = Application.FileDialog (msoFileDialogFolderPicker) Hvis folder.Show < >. -1 Deretter avslutte SubxDir = folder.SelectedItems (1) Ring ListFilesInFolder (xDir, sann) End SubSub ListFilesInFolder (ByVal xFolderName As String, ByVal xIsSubfolders As Boolean) Dim xFileSystemObject Som ObjectDim xFolder Som ObjectDim xSubFolder Som ObjectDim Xfile Som ObjectDim rowIndex Som LongSet xFileSystemObject = Create ("Scripting.FileSystemObject") Set xFolder = xFileSystemObject.GetFolder (xFolderName) rowIndex = Application.ActiveSheet.Range ("A65536"). End (xlUp) .Row + 1 For Hver Xfile I xFolder.Files Application.ActiveSheet.Cells (rowIndex, 1) .Formula = xFile.Name rowIndex = rowIndex + 1Next xFileIf xIsSubfolders også for hver xSubFolder I xFolder.SubFolders ListFilesInFolder xSubFolder.Path, Sann Neste xSubFolderEnd IfSet Xfile = NothingSet xFolder = NothingSet xFileSystemObject = NothingEnd underfunksjon GetFileOwner (ByVal XPath As String, ByVal xName As String) Dim xFolder Som ObjectDim xFolderItem Som ObjectDim xShell Som ObjectxName = StrConv (xName, vbUnicode) xPath = StrConv (xPath, vbUnicode) Set xShell = Create ("Shell.Application") Set xFolder = xShell.Namespace ( StrConv (xPath, vbFromUnicode)) Hvis ikke xFolder Er Ingenting Deretter Set xFolderItem = xFolder.ParseName (StrConv (xName, vbFromUnicode)) End IfIf Ikke xFolderItem Er Ingenting Deretter GetFileOwner = xFolder.GetDetailsOf (xFolderItem, 8) Else GetFileOwner = "" End IfSet xShell = NothingSet xFolder = NothingSet xFolderItem = NothingEnd Function4. Når du har limt inn koden i modulen, trykk F5-tasten kjøre denne koden, og makroer dialogboks dukker opp, velg MainList makronavnet, og klikk deretter Kjør-knappen, se skjermbilde:
5. Og i Bla gjennom vinduet, velger du mappen du ønsker å liste alle filnavn, inkludert undermapper, se skjermbilde:
6. Når du har angitt mappen, og klikk deretter på OK-knappen, og alle filnavn i mappen og dens undermapper har vært oppført i gjeldende regneark fra celle A2, se skjerm: