Застрял в петле. Список каталогов с использованием Excel VBA

Я пытаюсь составить здесь список каталогов моего диска с включенными каталогами, подкаталогами/папками и файлами. Он также показывает имя файла, путь к файлу, дату и размер. В настоящее время я использую этот код:

Dim iRow

Sub ListFiles()
    iRow = 11 'starting row listing
    Call ListMyFiles(Range("B5"), Range("B6"))
End Sub

Sub ListMyFiles(mySourcePath, IncludeSubfolders)
    Set MyObject = New Scripting.FileSystemObject
    Set mySource = MyObject.GetFolder(mySourcePath)
        On Error Resume Next
        For Each myFile In mySource.Files
        iCol = 3
        Cells(iRow, iCol).Value = myFile.Path
        iCol = iCol + 1
        Cells(iRow, iCol).Value = myFile.Name
        iCol = iCol + 1
        Cells(iRow, iCol).Value = myFile.Size
        iCol = iCol + 1
        Cells(iRow, iCol).Value = myFile.DateLastModified
        iRow = iRow + 1
    Next
    If IncludeSubfolders Then
        For Each mySubFolder In mySource.SubFolders
            Call ListMyFiles(mySource.Path, True)
        Next
    End If
End Sub

Всякий раз, когда я ввожу адрес, он работает нормально, но когда я решаю включить подпапки, он выходит из строя! Это просто зацикливается и продолжается вечно. Это просто не останавливается. Я не знаю, где искать ошибку. Я продолжаю перечитывать это, и кажется, что все в порядке, но, может быть, это только я. Кроме того, я поставил галочку на Microsoft Scripting Runtime для записи. А еще, я думаю, мне все еще чего-то здесь не хватает, потому что я также хотел показать имена папок, если это возможно.

Этот вопрос может быть не ясен или может быть уже продублирован, поэтому дайте мне знать. Благодарю вас!

P.S. Типа новичок здесь.


person Kurisuchin    schedule 28.01.2015    source источник
comment
Это может помочь: stackoverflow.com/questions/ 22645347/   -  person paul    schedule 28.01.2015
comment
должно быть Call ListMyFiles(mySource.Path, True) для подпапок Call ListMyFiles(mySubFolder.Path, True)   -  person Flakes    schedule 28.01.2015
comment
Ой. О верно! Это сработало. Я не заметил этого. Навсегда зацикливание прекратилось. Спасибо.   -  person Kurisuchin    schedule 28.01.2015
comment
@SearchAndResQ Поместите это как ответ, а не как комментарий.   -  person kurast    schedule 28.01.2015


Ответы (1)


Неверное значение пути, которое передается функции для списка подпапок.

Должен быть:

Call ListMyFiles(mySubFolder.Path, True)

person Flakes    schedule 28.01.2015