被困在一个循环中。使用Excel VBA的目录列表

时间:2015-01-28 09:40:07

标签: excel vba loops excel-vba filesystemobject

我试图在此处创建我的驱动器的目录列表,其中包含目录,子目录/文件夹和文件。它还显示文件名,文件路径,日期和大小。 我目前正在使用此代码:

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。 这里有点新手。

1 个答案:

答案 0 :(得分:0)

传递给子文件夹列表的函数的路径值是错误的。

应该是:

Call ListMyFiles(mySubFolder.Path, True)