根据日期循环浏览文件夹(获取剩余日期)VBA

Loop-ing through folders based on DATE (taking remaining dates) VBA

我在 VBA 中写了一段代码,它从单独的日常文件夹(例如 2021-10-09 是一个文件夹)中的许多单独文件中获取数据。

它现在的工作方式是这样的:我 select 每天和每月通过一些输入框,然后我的代码在文件路径中的那个特定文件夹上运行。

我想要的是:根据今天的日期(来自 vba 中的公式或输入),创建一个循环,在剩余的日子里运行我的代码。例如,如果今天是 2021 年 10 月 11 日,而我上次 运行 代码是 10/07,则代码最后应该循环遍历 10/08、10/08、10/10 和 10/11。

我可以创建一个变量,从最后一行获取日期字符串以查看上次更新时间。但是我如何循环浏览这些文件夹(上面有日期 - 附上 SS)。

Folders Structure

谢谢, 旦

使用 FileSystemObject 遍历 Folders 集合并使用字符串比较来筛选要处理的对象。

Option Explicit

Sub ScanFolders()
    
    Const FOLDER_PATH = "C:\temp\so\test\"

    Dim FSO As Object, fld
    Dim dtLastRun As Date
    dtLastRun = Range("A1")

    Set FSO = CreateObject("Scripting.FileSystemObject")
   
    For Each fld In FSO.getfolder(FOLDER_PATH).SubFolders
        If (fld.Name > Format(dtLastRun, "yyyy_mm_dd")) And _
           (fld.Name <= Format(Now, "yyyy_mm_dd")) Then
            ' Debug.Print fld.Name
            ' process files
        End If
    Next
    ' update sheet
    Range("A1") = Now

End Sub