Como listar todos os arquivos em uma pasta e subpastas em uma planilha?
Você já tentou listar todos os nomes de arquivos de uma pasta em uma planilha, incluindo os arquivos localizados em suas subpastas? Na verdade, não há uma maneira direta de listar os nomes de arquivos de uma pasta e sua subpasta no Excel. No entanto, hoje vou apresentar alguns truques rápidos para resolver essa tarefa.
Listar todos os nomes de arquivos em uma pasta e subpasta com código VBA
Listar todos os nomes de arquivos em uma pasta e subpasta com código VBA
Normalmente, o Excel não possui um recurso interno para lidar com essa tarefa, mas você pode aplicar o seguinte código VBA para resolver esse problema.
1. Ative uma nova planilha que listará os nomes dos arquivos.
2. Pressione as teclas ALT + F11 no Excel, e isso abrirá a janela Microsoft Visual Basic for Applications.
3. Clique em Inserir > Módulo e cole o seguinte código na Janela do Módulo.
Código VBA: Listar todos os nomes de arquivos em uma pasta e subpasta
Sub MainList()
'Updateby Extendoffice
Set folder = Application.FileDialog(msoFileDialogFolderPicker)
If folder.Show <> -1 Then Exit Sub
xDir = folder.SelectedItems(1)
Call ListFilesInFolder(xDir, True)
End Sub
Sub ListFilesInFolder(ByVal xFolderName As String, ByVal xIsSubfolders As Boolean)
Dim xFileSystemObject As Object
Dim xFolder As Object
Dim xSubFolder As Object
Dim xFile As Object
Dim rowIndex As Long
Set xFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set xFolder = xFileSystemObject.GetFolder(xFolderName)
rowIndex = Application.ActiveSheet.Range("A65536").End(xlUp).Row + 1
For Each xFile In xFolder.Files
Application.ActiveSheet.Cells(rowIndex, 1).Formula = xFile.Name
rowIndex = rowIndex + 1
Next xFile
If xIsSubfolders Then
For Each xSubFolder In xFolder.SubFolders
ListFilesInFolder xSubFolder.Path, True
Next xSubFolder
End If
Set xFile = Nothing
Set xFolder = Nothing
Set xFileSystemObject = Nothing
End Sub
Function GetFileOwner(ByVal xPath As String, ByVal xName As String)
Dim xFolder As Object
Dim xFolderItem As Object
Dim xShell As Object
xName = StrConv(xName, vbUnicode)
xPath = StrConv(xPath, vbUnicode)
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.Namespace(StrConv(xPath, vbFromUnicode))
If Not xFolder Is Nothing Then
Set xFolderItem = xFolder.ParseName(StrConv(xName, vbFromUnicode))
End If
If Not xFolderItem Is Nothing Then
GetFileOwner = xFolder.GetDetailsOf(xFolderItem, 8)
Else
GetFileOwner = ""
End If
Set xShell = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
End Function
4. Após colar o código no Módulo, pressione a tecla F5 para executar este código, e uma caixa de diálogo Macros aparecerá. Selecione o nome da macro MainList e clique no botão Executar, veja a captura de tela:
5. E na janela Procurar, por favor, selecione a pasta da qual deseja listar todos os nomes de arquivos, incluindo as subpastas, veja a captura de tela:
6. Depois de especificar a pasta, clique no botão OK, e todos os nomes de arquivos na pasta e suas subpastas serão listados na planilha atual a partir da célula A2, veja as capturas de tela:
![]() |
![]() |
![]() |
Listar todos os nomes de arquivos em uma pasta e subpasta rapidamente e facilmente com o Kutools para Excel
Com o código acima, você pode apenas listar os nomes de arquivos. Às vezes, você precisa listar outros atributos, como tamanho do arquivo, tipo de arquivo, hora de criação, pasta contendo e assim por diante. O Kutools para Excel contém uma função útil – Lista de Nomes de Arquivos, com este recurso, você pode listar rapidamente todos ou tipos específicos de nomes de arquivos em uma pasta e suas subpastas.
Após baixar e instalar o Kutools para Excel, siga os passos abaixo:
1. Clique em Empresa > Importar e Exportar > Lista de Nomes de Arquivos, veja a captura de tela:
2. Na caixa de diálogo Lista de Nomes de Arquivos, faça as seguintes operações:
A: Clique no botão para escolher a pasta da qual deseja listar os nomes de arquivos;
B: Especifique o tipo de arquivo que deseja listar na seção Tipo de arquivo;
C: Selecione uma unidade de tamanho de arquivo que deseja exibir na seção Unidade de tamanho de arquivo.
Observação: Para listar os nomes de arquivos das subpastas, marque a opção Incluir arquivos em subdiretórios. Você também pode marcar a opção Incluir arquivos e pastas ocultos conforme necessário. Se você marcar a opção Criar hiperlinks, isso criará hiperlinks para cada nome de arquivo e pasta.
3. Em seguida, clique no botão OK, todos os arquivos contidos na pasta selecionada e suas subpastas serão exibidos com os seguintes atributos em uma nova planilha. Veja a captura de tela:
Clique para saber mais detalhes sobre este utilitário Lista de Nomes de Arquivos.
Baixe e experimente gratuitamente o Kutools para Excel agora!
Melhores Ferramentas de Produtividade para Office
Potencialize suas habilidades no Excel com o Kutools para Excel e experimente uma eficiência sem igual. O Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
O Office Tab traz interface com abas para o Office e facilita muito o seu trabalho
- Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas abas na mesma janela, em vez de abrir novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!