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

Jak zobrazit seznam všech složek a podsložek v aplikaci Excel?

Už jste někdy trpěli tímto problémem, že jste do listu uvedli všechny složky a podsložky ze zadaného adresáře? V aplikaci Excel neexistuje rychlý a praktický způsob, jak získat název všech složek v určitém adresáři najednou. Při řešení tohoto úkolu vám může pomoci tento článek.

Seznam všech složek a podsložek s kódem VBA

Karta Office Povolte úpravy a procházení na kartách v Office a vaše práce bude mnohem jednodušší ...
Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%
  • Znovu použít cokoli: Přidejte do svých oblíbených nejpoužívanější nebo nejsložitější vzorce, grafy a cokoli jiného a rychle je v budoucnu znovu použijte.
  • Více než 20 textových funkcí: Extrahovat číslo z textového řetězce; Extrahovat nebo odebrat část textů; Převádějte čísla a měny na anglická slova.
  • Sloučit nástroje: Více sešitů a listů do jednoho; Sloučit více buněk / řádků / sloupců bez ztráty dat; Sloučit duplicitní řádky a součet.
  • Rozdělené nástroje: Rozdělit data do více listů na základě hodnoty; Jeden sešit pro více souborů Excel, PDF nebo CSV; Jeden sloupec na více sloupců.
  • Vložit přeskakování Skryté / filtrované řádky; Count And Sum podle barvy pozadí; Posílejte hromadně osobní e-maily více příjemcům.
  • Super filtr: Vytvořte pokročilá schémata filtrů a použijte je na jakékoli listy; Typ podle týdne, dne, frekvence a dalších; Filtr tučně, vzorce, komentovat ...
  • Více než 300 výkonných funkcí; Funguje s Office 2007-2019 a 365; Podporuje všechny jazyky; Snadné nasazení ve vašem podniku nebo organizaci.

šipka modrá pravá bublina Seznam všech složek a podsložek s kódem VBA


Pokud chcete získat všechny názvy složek ze zadaného adresáře, může vám pomoci následující kód VBA, udělejte to takto:

1. Podržte ALT + F11 klíče a otevře se Okno Microsoft Visual Basic pro aplikace.

2, klikněte Vložit > Modula vložte následující kód do Okno modulu.

Kód VBA: Seznam všech názvů složek a podsložek

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. Pak stiskněte tlačítko F5 klíč ke spuštění tohoto kódu a Vyberte složku vyskočí okno, pak musíte vybrat adresář, ve kterém chcete vypsat názvy složek a podsložek, viz screenshot:

doc-list-folder-names-1

4, klikněte OK, a v novém sešitu získáte cestu ke složce a podsložkám, adresář, název, datum vytvoření a datum poslední změny, viz screenshot:

doc-list-folder-names-1


Související článek:

Jak vypsat soubory v adresáři do listu v aplikaci Excel?


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2019 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Kompletní funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50% a omezuje stovky kliknutí myší každý den!
officetab dno
Komentáře (18)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Díky moc. Používal jsem cmd prompt, abych měl txt s mými složkami a pak ho zkopíroval do excelu, ale teď mi to usnadňuješ :)
Tento komentář byl moderátorem webu minimalizován
Co když potřebuji vytvořit odkaz také pro složku, co bych měl upravit v kódování a nemůžeme vytvořit tlačítko a propojit s ním stejné kódování, takže to bude užitečné pro uživatele, kteří nevědí, jak spouštět makra
Tento komentář byl moderátorem webu minimalizován
Udělal jsem přesně to, co jsi požadoval. Umístil jsem logo své společnosti na whorksheet, pak jsem na něj kliknul pravým tlačítkem a přiřadil makro (což je výše uvedený kód.) Můžete také vložit návod, jak na to použité uživatelské pokyny.
Tento komentář byl moderátorem webu minimalizován
Tento kód skutečně zachránil den. děkujeme za sdílení.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, právě jsem postupoval podle vašich pokynů, ale po stisknutí F5 ke spuštění se mi zobrazují chyby. Níže uvedená chyba zvýrazní „Dim xWs As Worksheet“. Existuje aktualizovaný kód, který mohu použít? Chyba kompilace: Uživatelem definovaný typ není definován
Tento komentář byl moderátorem webu minimalizován
[quote]Dobrý den, právě jsem postupoval podle vašich pokynů, ale při spuštění stisknutím F5 se mi zobrazují chyby. Níže uvedená chyba zvýrazní „Dim xWs As Worksheet“. Existuje aktualizovaný kód, který mohu použít? Chyba kompilace: Uživatelem definovaný typ není definovánOd Caralyn[/quote] Používáte doplněk Kutools nebo editor MS Excel VBA? Protože doplněk nepoužívám, nemohu duplikovat vaši chybu. Použití MS VBA Editoru funguje bez chyb.
Tento komentář byl moderátorem webu minimalizován
Když spustím tento kód, funguje to, ale zobrazuje pouze první složku ve složce, kterou si zvolím. Například, když spustím kód, vyberu "C:\Users\Johnson\Music" (Poznámka: ve složce Hudba mám 70 složek) Když se kód spustí, zobrazí se pouze první složka a pak se zobrazí seznam všech složek v této složce. složka. Chtěl bych, aby byly uvedeny všechny složky ve složce Hudba.
Tento komentář byl moderátorem webu minimalizován
Jsem s ostatními - funguje to do určité míry.

Pro mě jde o to, že vytvoří nové s/s, podrobnosti o složce, kterou jsem ukázal (v buňkách A1), žlutě zvýrazněný pruh v řádku 2 s nadpisy, za kterými nenásleduje nic jiného!

Složka, na kterou se dívám, je prázdná kromě podsložek (tj. neexistují žádné datové soubory) a podsložky se vůbec nezobrazují.

Může mi někdo pomoci se seznamem podsložek a jejich souborů?
Tento komentář byl moderátorem webu minimalizován
Upravil jsem to, abych přidal velikost:



Názvy podsložek()
'Aktualizace 20141027
Application.ScreenUpdating = False
Dim xPath As String
Dim xWs jako pracovní list
Dim fso As Object, j As Long, folder1 As Object
S Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Vyberte složku"
.Show
Konec s
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Aplikace.Sešity.Přidat
Nastavit xWs = Application.ActiveSheet
xWs.Cells(1, 1).Hodnota = xCesta
xWs.Cells(2, 1).Resize(1, 6).Value = Array("Cesta", "Dir", "Název", "Datum vytvoření", "Datum poslední úpravy","Velikost")
Nastavit fso = CreateObject ("Scripting.FileSystemObject")
Nastavit složku1 = fso.getFolder(xPath)
getSubFolder folder1
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)
Ztlumit podsložku jako objekt
Dim subfld As Object
Dim xRow As Long
Pro každou podsložku v prntfld.SubFolders
xRow = Range("A1").End(xlDown).Row + 1
Cells(xRow, 1).Resize(1, 6).Hodnota = Array(Podsložka.Cesta, Left(Podsložka.Cesta, InStrRev(Podsložka.Cesta, "\")), Název podsložky, Podsložka.Datum vytvoření, Podsložka. DateLastModified, SubFolder.Size)
Další podsložka
Pro každý podfld V prntfld.SubFolders
getSubFolder subfld
Další podfld
End Sub
Tento komentář byl moderátorem webu minimalizován
Když zahrnete funkci SubFolder.Size, skript již neuvádí všechny podsložky, pouze první úroveň.
Jak mohu zahrnout velikost a zobrazit všechny podsložky?
Tento komentář byl moderátorem webu minimalizován
Ahoj. Můžete mi prosím pomoci s kódem, který se snažím najít.

Níže jsou uvedeny požadavky na kód.



1. VBA by měl projít všechny složky a podsložky
a zkontrolujte každý typ souboru. Uživatel by měl zadat pouze cestu pro
horní složka. Kód by pak měl zkontrolovat všechny složky a podsložky
v horní složce.



2. Po kontrole souborů by měl kód zazipovat všechny soubory
ke kterým nebyl přístup déle než 3 měsíce. Přístupné období je
něco, co bych měl být schopen v budoucnu v případě potřeby změnit. Mělo by
v případě potřeby mi dovolte změnit jej na 1 měsíc nebo 5 měsíců.



3. Po zazipování souborů by měl kód smazat
původní soubory, které byly zazipovány.



4. Zazipovaný soubor by měl být uložen ve stejné cestě jako soubor
původní soubor.
Tento komentář byl moderátorem webu minimalizován
Skvělý nástroj! Po dlouhém bádání jsme našli tuto přesnou hračku :)
Tento komentář byl moderátorem webu minimalizován
Přesně to, co jsem potřeboval, a naprosto jasný návod, jak to zprovoznit. Díky moc
Tento komentář byl moderátorem webu minimalizován
Děkuji mnohokrát!, velmi užitečné.
Tento komentář byl moderátorem webu minimalizován
Tohle fungovalo a jak... Děkuji mnohokrát. Jen jeden dodatek-- v kroku 3 jsem musel kliknout na Step Into a poté fungovala pouze klávesa F5 pro výběr složky.
Tento komentář byl moderátorem webu minimalizován
Velice vám děkuji za tento užitečný kód. je možné uložit výsledek ve stejném sešitu ne do nového?
Tento komentář byl moderátorem webu minimalizován
Děkujeme, přesně to jsme potřebovali k evidenci složek pro naše klienty.
Tento komentář byl moderátorem webu minimalizován
Skvělá práce... Moc mi to pomůže, moc děkuji
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění