根据日期循环浏览文件夹(获取剩余日期)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
我在 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