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

Hur listar jag alla mappar och undermappar i Excel?

Har du någonsin drabbats av detta problem som listar alla mappar och undermappar från en viss katalog i ett kalkylblad? I Excel finns det inget snabbt och praktiskt sätt att få namnet på alla mappar i en viss katalog samtidigt. För att hantera uppgiften kan den här artikeln hjälpa dig.

Lista alla mappar och undermappar med VBA-kod

Fliken Office Aktiverar flikredigering och surfning i Office, och gör ditt arbete mycket enklare ...
Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%
  • Återanvänd allt: Lägg till de mest använda eller komplexa formlerna, diagrammen och allt annat till dina favoriter och återanvänd dem snabbt i framtiden.
  • Mer än 20 textfunktioner: Extrahera nummer från textsträng; Extrahera eller ta bort en del av texterna; Konvertera siffror och valutor till engelska ord.
  • Sammanfoga verktyg: Flera arbetsböcker och ark till en; Slå ihop flera celler / rader / kolumner utan att förlora data; Slå samman duplicerade rader och summa.
  • Dela verktyg: Dela data i flera ark baserat på värde; En arbetsbok för flera Excel-, PDF- eller CSV-filer; En kolumn till flera kolumner.
  • Klistra över Dolda / filtrerade rader; Räkna och summa av bakgrundsfärg; Skicka personliga e-postmeddelanden till flera mottagare i bulk.
  • Superfilter: Skapa avancerade filterscheman och tillämpas på alla ark; Svart per vecka, dag, frekvens och mer; Filter med fetstil, formler, kommentarer ...
  • Mer än 300 kraftfulla funktioner; Fungerar med Office 2007-2021 och 365; Stöder alla språk; Enkel implementering i ditt företag eller organisation.

pil blå höger bubbla Lista alla mappar och undermappar med VBA-kod

Om du vill hämta alla mappnamn från en viss katalog kan följande VBA-kod hjälpa dig, gör så här:

1. Håll ner ALT + F11 knapparna och det öppnar Microsoft Visual Basic for Applications-fönstret.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulfönster.

VBA-kod: Lista alla mappar och undermappnamn

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. Tryck sedan på F5 nyckel för att köra den här koden och en Välj mapp fönstret kommer att dyka upp, då måste du välja den katalog som du vill lista mapp- och undermappens namn, se skärmdump:

doc-list-mapp-namn-1

4. Klicka OK, och du får mappens och undermappens sökväg, katalog, namn, skapat datum och senast ändrade datum i en ny arbetsbok, se skärmdump:

doc-list-mapp-namn-1


Relaterad artikel:

Hur listar jag filer i en katalog till kalkylblad i Excel?


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (18)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket. Jag använde cmd prompt för att ha en txt med mina mappar och kopiera den sedan till excel men nu gör du det enkelt för mig :)
Denna kommentar minimerades av moderatoren på webbplatsen
Vad händer om jag behöver skapa länken också för mappen vad ska jag ändra i kodningen och kan inte vi skapa knappen och länka samma kodning till den, så det kommer att vara användbart för de användare som inte vet hur man kör makron
Denna kommentar minimerades av moderatoren på webbplatsen
Jag gjorde precis som du begärde. Jag placerade min företagslogotyp på bladet, sedan högerklickade jag på det och tilldelade ett makro (som är ovanstående kod.) Du kan också infoga hur man använder användarinstruktioner.
Denna kommentar minimerades av moderatoren på webbplatsen
Den här koden räddade verkligen dagen. Tack för att du delar med dig.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag följde precis dina anvisningar men jag får felmeddelanden när jag trycker på F5 för att springa. Felet nedan markerar "Dim xWs As Worksheet". Finns det en uppdaterad kod jag kan använda? Kompileringsfel: Användardefinierad typ inte definierad
Denna kommentar minimerades av moderatoren på webbplatsen
[quote]Hej, jag följde bara dina instruktioner men jag får felmeddelanden när jag trycker på F5 för att köra. Felet nedan markerar "Dim xWs As Worksheet". Finns det en uppdaterad kod jag kan använda? Kompileringsfel: Användardefinierad typ inte definieradAv Caralyn[/quote] Använder du Kutools-tillägget eller MS Excel VBA-redigeraren? Eftersom jag inte använder tillägget kan jag inte duplicera ditt fel. Att använda MS VBA Editor fungerar utan några fel.
Denna kommentar minimerades av moderatoren på webbplatsen
När jag kör den här koden fungerar den men den visar bara den första mappen i sidan av mappen som jag väljer. Till exempel, när jag kör koden väljer jag "C:\Users\Johnson\Music" (Obs: Jag har 70 mappar i min musikmapp) När koden körs visar den bara den första mappen och listar sedan alla mappar i den mapp. Jag skulle vilja att den listar alla mappar i mappen Musik.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag är med de andra - det fungerar till en viss grad.

För mig är den punkten att den skapar de nya s/s, detaljer om mappen jag har visat (i celler A1), en gul markerad stapel i rad 2 med rubrikerna följt av inget annat!

Mappen jag tittar på är tom förutom undermappar (dvs inga datafiler finns) och undermappar visas inte alls.

Kan någon hjälpa mig att lista undermappar och deras filer?
Denna kommentar minimerades av moderatoren på webbplatsen
Jag ändrade den för att lägga till storlek:



Sub FolderNames()
'Uppdatering 20141027
Application.ScreenUpdating = False
Dim xPath som sträng
Dim xWs Som arbetsblad
Dim fso As Object, j As Long, folder1 As Object
Med Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Välj mappen"
.Visa
Sluta med
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Applikation.Arbetsböcker.Lägg till
Ställ in xWs = Application.ActiveSheet
xWs.Cells(1, 1).Värde = xPath
xWs.Cells(2, 1).Resize(1, 6).Value = Array("Path", "Dir", "Name", "Date created", "Date Last Modified","Size")
Ställ in fso = CreateObject ("Scripting.FileSystemObject")
Ställ in mapp1 = fso.getFolder(xPath)
getSubFolder mapp1
xWs.Cells(2, 1).Ändra storlek(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)
Dimma undermapp som objekt
Dim subfld som objekt
Dim xRow As Long
För varje undermapp i prntfld.SubFolders
xRow = Range("A1").End(xlDown).Row + 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)
Nästa undermapp
För varje subfld I prntfld.SubFolders
getSubFolder subfld
Nästa subfld
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
När du inkluderar funktionen SubFolder.Size listar skriptet inte längre alla undermappar, bara den första nivån.
Hur kan jag inkludera storleken och få alla undermappar listade?
Denna kommentar minimerades av moderatoren på webbplatsen
Hallå. Kan du snälla hjälpa mig med en kod som jag kämpar för att hitta.

Nedan finns kraven för koden.



1. VBA:n ska gå igenom alla mappar och undermappar
och kontrollera varje typ av fil. Användaren ska bara ange sökvägen för
den översta mappen. Koden bör då kontrollera alla mappar och undermappar
i den översta mappen.



2. Efter att ha kontrollerat filerna bör koden zippa alla filer
som inte har nåtts på mer än 3 månader. Den åtkomstperiod är
något som jag borde kunna ändra i framtiden om det behövs. Det borde
låt mig ändra det till 1 månad eller 5 månader om det behövs.



3. Efter att ha zippat filerna bör koden ta bort
originalfiler som zippades.



4. Den zippade filen bör sparas i samma sökväg som
originalfil.
Denna kommentar minimerades av moderatoren på webbplatsen
Bra verktyg! Efter lång forskning hittade denna korrekta leksak :)
Denna kommentar minimerades av moderatoren på webbplatsen
Precis vad jag behövde, och helt tydliga instruktioner om hur man får det att fungera. Tack så mycket
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket!, mycket användbart.
Denna kommentar minimerades av moderatoren på webbplatsen
Det här fungerade och hur... Tack så mycket. Bara ett tillägg - vid steg 3 var jag tvungen att klicka på Step Into och sedan fungerade bara F5-tangenten för att välja mappen.
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket för denna användbara kod. är det möjligt att spara resultat i samma arbetsbok inte till en ny?
Denna kommentar minimerades av moderatoren på webbplatsen
Tack, det här är precis vad vi behövde för att spela in mapparna för våra kunder.
Denna kommentar minimerades av moderatoren på webbplatsen
Bra jobbat... Det är till stor hjälp för mig, tack så mycket
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL