Note: The other languages of the website are Google-translated. Back to English

Como listar todas as pastas e subpastas no Excel?

Você já sofreu com esse problema de listar todas as pastas e subpastas de um diretório especificado em uma planilha? No Excel, não existe uma maneira rápida e prática de obter o nome de todas as pastas em um diretório específico de uma só vez. Para lidar com a tarefa, este artigo pode ajudá-lo.

Liste todas as pastas e subpastas com código VBA

Guia Office Habilite a edição e navegação com guias no Office e torne seu trabalho muito mais fácil ...
O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%
  • Reutilizar qualquer coisa: Adicione as fórmulas, gráficos e tudo mais usados ​​ou complexos aos seus favoritos e reutilize-os rapidamente no futuro.
  • Mais de 20 recursos de texto: Extrair número da string de texto; Extraia ou remova parte dos textos; Converta números e moedas para palavras em inglês.
  • Ferramentas de mesclagem: Várias pastas de trabalho e planilhas em um; Mesclar várias células / linhas / colunas sem perder dados; Mesclar linhas duplicadas e soma.
  • Ferramentas de divisão: Divida os dados em várias folhas com base no valor; Uma pasta de trabalho para vários arquivos do Excel, PDF ou CSV; Uma coluna para várias colunas.
  • Colar Ignorando Linhas ocultas / filtradas; Contagem e soma por cor de fundo; Envie emails personalizados para vários destinatários em massa.
  • Super Filtro: Crie esquemas de filtro avançados e aplique a qualquer planilha; tipo por semana, dia, frequência e muito mais; filtros por negrito, fórmulas, comentário ...
  • Mais de 300 recursos poderosos; Funciona com Office 2007-2021 e 365; Suporta todos os idiomas; Fácil implantação em sua empresa ou organização.

seta azul bolha direita Liste todas as pastas e subpastas com código VBA

Se você deseja obter todos os nomes de pastas de um diretório especificado, o seguinte código VBA pode ajudá-lo, faça o seguinte:

1. Segure o ALT + F11 chaves, e abre o Janela Microsoft Visual Basic for Applications.

2. Clique inserção > Móduloe cole o seguinte código no Janela Módulo.

Código VBA: lista todas as pastas e nomes de subpastas

Sub FolderNames()
'Update 20141027
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

3. Então aperte F5 chave para executar este código, e um Escolha a pasta janela aparecerá, então você precisa selecionar o diretório em que deseja listar os nomes da pasta e subpasta, consulte a captura de tela:

doc-list-folder-names-1

4. Clique OK, e você obterá o caminho da pasta e subpastas, diretório, nome, data de criação e data da última modificação em uma nova pasta de trabalho, consulte a captura de tela:

doc-list-folder-names-1


Artigo relacionado:

Como listar arquivos em um diretório para planilha no Excel?


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2021 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Recursos completos de avaliação gratuita de 30 dias. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório
Comentários (18)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Muito obrigado. Eu estava usando o prompt do cmd para ter um txt com minhas pastas e copiá-lo no Excel, mas agora você facilita as coisas para mim :)
Este comentário foi feito pelo moderador no site
E se eu precisar criar o link também para a pasta o que devo modificar na codificação e não podemos criar o botão e vincular a mesma codificação a ele, para que seja útil para os usuários que não sabem executar macros
Este comentário foi feito pelo moderador no site
Fiz exatamente o que você pediu. Coloquei o logotipo da minha empresa no whorksheet, cliquei com o botão direito do mouse e atribuí uma macro (que é o código acima). Você também pode inserir instruções de usuário usadas.
Este comentário foi feito pelo moderador no site
Este código realmente salvou o dia. Obrigado por compartilhar isso.
Este comentário foi feito pelo moderador no site
Olá, acabei de seguir suas instruções, mas estou recebendo erros quando pressiono F5 para executar. O erro abaixo destaca "Dim xWs As Worksheet". Existe um código atualizado que eu possa usar? Erro de compilação: tipo definido pelo usuário não definido
Este comentário foi feito pelo moderador no site
[quote]Olá, acabei de seguir suas instruções, mas estou recebendo erros quando pressiono F5 para executar. O erro abaixo destaca "Dim xWs As Worksheet". Existe um código atualizado que eu possa usar? Erro de compilação: tipo definido pelo usuário não definidoPor Caralyn[/quote] Você está usando o complemento Kutools ou o editor MS Excel VBA? Como não estou usando o complemento, não consigo duplicar seu erro. O uso do MS VBA Editor funciona sem erros.
Este comentário foi feito pelo moderador no site
Quando eu executo esse código ele funciona, mas só mostra a primeira pasta ao lado da pasta que eu escolho. Por exemplo, quando eu executo o código eu escolho "C:\Users\Johnson\Music" (Nota: eu tenho 70 pastas dentro da minha pasta de música) Quando o código é executado ele mostra apenas a primeira pasta e depois lista todas as pastas dentro dela pasta. Eu gostaria que listasse todas as pastas dentro da pasta Música.
Este comentário foi feito pelo moderador no site
Estou com os outros - funciona até certo ponto.

Para mim, esse ponto é que ele cria os novos s/s, detalha a pasta que mostrei (nas células A1), uma barra amarela destacada na linha 2 com os títulos seguidos por nada mais!

A pasta que estou olhando está vazia, exceto pelas subpastas (ou seja, não existem arquivos de dados) e as subpastas não aparecem.

Alguém pode me ajudar a listar as subpastas e seus arquivos?
Este comentário foi feito pelo moderador no site
Eu modifiquei para adicionar tamanho:



Nomes de subpastas()
'Atualizar 20141027
Application.ScreenUpdating = False
Dim xPath como string
Dim xWs como planilha
Dim fso As Object, j As Long, folder1 As Object
Com Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Escolha a pasta"
.Exposição
Terminar com
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Aplicativo.Pastas de trabalho.Adicionar
Definir xWs = Application.ActiveSheet
xWs.Cells(1, 1).Value = xPath
xWs.Cells(2, 1).Resize(1, 6).Value = Array("Caminho", "Dir", "Nome", "Data de criação", "Data da última modificação", "Tamanho")
Defina fso = CreateObject ("Scripting.FileSystemObject")
Definir pasta1 = fso.getFolder(xPath)
pasta getSubFolder1
xWs.Cells(2, 1).Resize(1, 6).Interior.Color = 65535
xWs.Cells(2, 1).Resize(1, 6).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Sub getSubFolder(ByRef prntfld As Object)
Dim subpasta como objeto
Escurecer subfld como objeto
Dim xRow por muito tempo
Para cada subpasta em prntfld.SubFolders
xLinha = Range("A1").Fim(xlBaixo).Linha + 1
Cells(xRow, 1).Resize(1, 6).Value = Array(SubFolder.Path, Left(SubFolder.Path, InStrRev(SubFolder.Path, "\")), SubFolder.Name, SubFolder.DateCreated, SubFolder. DateLastModified, SubFolder.Size)
Próxima Subpasta
Para cada subfld Em prntfld.SubFolders
getSubFolder subfld
Próxima subfld
End Sub
Este comentário foi feito pelo moderador no site
Quando você inclui a função SubFolder.Size, o script não lista mais todas as subpastas, apenas o primeiro nível.
Como posso incluir o tamanho e obter todas as subpastas listadas?
Este comentário foi feito pelo moderador no site
Olá. Você pode por favor me ajudar em um código que estou lutando para encontrar.

Abaixo estão os requisitos para o código.



1. O VBA deve passar por todas as pastas e subpastas
e verifique cada tipo de arquivo. O usuário deve fornecer apenas o caminho para
a pasta superior. O código deve então verificar todas as pastas e subpastas
dentro da pasta superior.



2. Após verificar os arquivos, o código deve compactar todos os arquivos
que não foram acessados ​​por mais de 3 meses. O período acessado é
algo que eu deveria ser capaz de mudar no futuro, se necessário. Deveria
permita-me alterá-lo para 1 mês ou 5 meses, se necessário.



3. Após compactar os arquivos, o código deve excluir o
arquivos originais que foram compactados.



4. O arquivo compactado deve ser salvo no mesmo caminho que o
arquivo original.
Este comentário foi feito pelo moderador no site
Ótima ferramenta! Depois de uma longa pesquisa encontrei este brinquedo preciso :)
Este comentário foi feito pelo moderador no site
Exatamente o que eu precisava, e instruções perfeitamente claras sobre como fazê-lo funcionar. Muito obrigado
Este comentário foi feito pelo moderador no site
Muito obrigado!, muito útil.
Este comentário foi feito pelo moderador no site
Isso funcionou e como... Muito obrigado. Apenas uma adição - na etapa 3, eu tive que clicar em Step Into e só a tecla F5 funcionou para escolher a pasta.
Este comentário foi feito pelo moderador no site
Muito obrigado por este código útil. é possível salvar o resultado na mesma pasta de trabalho e não em uma nova?
Este comentário foi feito pelo moderador no site
Obrigado, era exatamente isso que precisávamos para gravar as pastas para nossos clientes.
Este comentário foi feito pelo moderador no site
Ótimo trabalho... me ajudou muito, muito obrigado
Não há comentários postados aqui ainda
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos

Siga-nos

Copyright © 2009 - www.extendoffice.com. | Todos os direitos reservados. Distribuído por ExtendOffice. | | | Mapa do site
Microsoft e o logotipo do Office são marcas comerciais ou marcas registradas da Microsoft Corporation nos Estados Unidos e / ou em outros países.
Protegido por Sectigo SSL