Excel'de tüm klasörleri ve alt klasörleri nasıl listelersiniz?
Belirli bir dizindeki tüm klasörleri ve alt klasörleri bir çalışma sayfasına listelemek gibi bir sorunla uğraştınız mı? Excel'de, belirli bir dizindeki tüm klasörlerin adlarını bir defada almak için hızlı ve kullanışlı bir yöntem bulunmamaktadır. Bu görevle başa çıkmak için bu makale size yardımcı olabilir.
Tüm klasörleri ve alt klasörleri listelemek için VBA kodu kullanın
Tüm klasörleri ve alt klasörleri listelemek için VBA kodu kullanın
Eğer belirli bir dizinden tüm klasör adlarını almak istiyorsanız, aşağıdaki VBA kodu size yardımcı olabilir, lütfen şu adımları izleyin:
1. "ALT + F11" tuşlarına basılı tutun ve bu işlem "Microsoft Visual Basic for Applications penceresini" açar.
2. "Ekle" > "Modül" seçeneğine tıklayın ve aşağıdaki kodu "Modül Penceresi"ne yapıştırın.
VBA Kodu: Tüm klasörleri ve alt klasör adlarını listeleme
Sub FolderNames()
'Updateby Extendoffice
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. Ardından bu kodu çalıştırmak için "F5" tuşuna basın ve bir "Klasör Seçin" penceresi açılacaktır. Daha sonra klasör ve alt klasör adlarını listelemek istediğiniz dizini seçmeniz gerekir, ekran görüntüsüne bakın:
4. "Tamam" düğmesine tıklayın ve yeni bir çalışma kitabında klasör ile alt klasörlerin yolu, dizini, adı, oluşturulma tarihi ve son değiştirilme tarihini elde edeceksiniz, ekran görüntüsüne bakın:
İlgili makale:
Excel'de bir dizindeki dosyaları çalışma sayfasına nasıl listelersiniz?
En İyi Ofis Verimlilik Araçları
Kutools for Excel ile Excel becerilerinizi geliştirin ve daha önce hiç olmadığı kadar verimli olun. Kutools for Excel, üretkenliğinizi artırmak ve zamanınızı kaydetmek için300'den fazla gelişmiş özellik sunar. En çok ihtiyacınız olan özelliği almak için buraya tıklayın...
Office Tab, Office'e sekmeli arayüz getirir ve işinizi çok daha kolaylaştırır
- Word, Excel, PowerPoint'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Aynı pencerenin yeni sekmelerinde birden fazla belge açın ve oluşturun, yeni pencerelerde değil.
- Verimliliğinizi %50 artırır ve her gün yüzlerce fare tıklamasını azaltır!