【发布时间】:2021-08-19 20:42:20
【问题描述】:
所以,我还没有为此编写任何特定的代码,但我正在尝试从概念上思考如何做到这一点。
我有一个文件夹,每个工作日的每个小时都会在其中转储一个 .xslx 文件。目前我有一些代码进入,找到最新的文件并打开它,进行一些数据操作(过滤、复制然后粘贴到另一个工作簿等)。
我现在想要的是创建一个时间序列,例如我指定了一个日期范围,比如 2021 年 3 月 1 日到 2021 年 6 月 1 日,让代码找到该范围内每个工作日的最新文件,打开它并执行我已经创建的相同数据操作步骤。
如果有帮助,下面是我当前的代码,它只找到最新的文件(任何日期)。我的问题是如何遍历文件?我需要一个新变量,还是可以将 dtefile 更改为日期范围?
Sub LatestLoad()
Dim FileSys As FileSystemObject
Dim objFile As File
Dim myFolder
Dim strFilename As String
Dim dteFile As Date
Const myDir As String = "C:\myfolder"
Set FileSys = New FileSystemObject
Set myFolder = FileSys.GetFolder(myDir)
dteFile = DateSerial(1900, 1, 1)
For Each objFile In myFolder.Files
If objFile.DateLastModified > dteFile Then
dteFile = objFile.DateLastModified
strFilename = objFile.Name
End If
Next objFile
Workbooks.Open myDir & "\" & strFilename, ReadOnly:=True
Workbooks(strFilename).Activate
End Sub
【问题讨论】:
-
If objFile.DateLastModified >= DateSerial(2021, 3, 1) And objFile.DateLastModified < DateSerial(2021, 6, 1) Then应该遍历这些日期之间的所有文件。你的问题是什么? -
一半,我想 - 我还想在每个日期打开每个最后修改的文件?
-
你的意思是你需要找到这两个日期之间每天最后修改的文件?
-
只是一个概念问题的输入:这可能是数据库的工作。您将数据填充到数据库中,您可以查询所需的任何数据选择。 Excel文件来自哪里?从数据库?可能有一条直截了当的方法。
标签: excel vba loops date range