【问题标题】:Stuck in a Loop. Directory Listing using Excel VBA陷入循环。使用 Excel VBA 列出目录
【发布时间】:2015-03-27 03:42:27
【问题描述】:

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

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,以作记录。 而且,我认为我在这里仍然缺少一些东西,因为如果可能的话,我还想显示文件夹名称。

这个问题可能不清楚或可能已经重复,所以请告诉我。谢谢!

附: 这里有点新手。

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/22645347/…
  • 对于子文件夹,Call ListMyFiles(mySource.Path, True) 应该是 Call ListMyFiles(mySubFolder.Path, True)
  • 哦。啊对!有效。我没有注意到那个。永远循环停止。谢谢。
  • @SearchAndResQ 将此作为答案,而不是作为评论。

标签: vba loops excel filesystemobject


【解决方案1】:

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

应该是:

Call ListMyFiles(mySubFolder.Path, True)

【讨论】:

    猜你喜欢
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多