代码之家  ›  专栏  ›  技术社区  ›  Kurisuchin

陷入循环。使用Excel VBA列出目录

  •  0
  • Kurisuchin  · 技术社区  · 10 年前

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

    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,作为记录。 此外,我认为我仍然缺少一些东西,因为我也想显示文件夹名称,如果可能的话。

    这个问题可能不清楚,或者已经重复了,所以让我知道。非常感谢。

    附笔。 这里有点菜鸟。

    1 回复  |  直到 10 年前
        1
  •  0
  •   Flakes    10 年前

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

    应该是:

    Call ListMyFiles(mySubFolder.Path, True)