Vba 正在检索上次修改的文件,该文件的名称为部分变量
我们有一个系统,可以自动下载数据并将其放入excel和其他表格中。我试图为主电子表格编写一个宏,检索某个文件的最新版本,以便编辑、复制并粘贴到主工作表中 检索文件时遇到问题,因为文件名包含日期 我对VBA还是一个新手,仍然只是把一些代码拼凑在一起,以得到一个可以工作的东西,但我找不到我想要的东西 文件名例如为“ML0003-每日订单输入信息-170927” 最后6个数字表示日期和每次的变化 这是我目前的代码:Vba 正在检索上次修改的文件,该文件的名称为部分变量,vba,excel,Vba,Excel,我们有一个系统,可以自动下载数据并将其放入excel和其他表格中。我试图为主电子表格编写一个宏,检索某个文件的最新版本,以便编辑、复制并粘贴到主工作表中 检索文件时遇到问题,因为文件名包含日期 我对VBA还是一个新手,仍然只是把一些代码拼凑在一起,以得到一个可以工作的东西,但我找不到我想要的东西 文件名例如为“ML0003-每日订单输入信息-170927” 最后6个数字表示日期和每次的变化 这是我目前的代码: Dim dtTestDate As Date Dim sStartWB As
Dim dtTestDate As Date
Dim sStartWB As String
Const sPath As String = "D:\Berry\AddIn\Testing\"
Const dtEarliest = #1/1/2010#
dtTestDate = Date
sStartWB = ActiveWorkbook.Name
While ActiveWorkbook.Name = sStartWB And dtTestDate >= dtEarliest
On Error Resume Next
Workbooks.Open sPath & "ML0003 - Daily Order Entry Information - " & " ****** " & ".xls"
dtTestDate = dtTestDate - 1
On Error GoTo 0
Wend
If ActiveWorkbook.Name = sStartWB Then MsgBox "Earlier file not found."
我被假定asterix会允许任何字符出现在那里,但这似乎不起作用。有什么想法吗?您需要使用
Dir
函数使用通配符查找文件,如下所示:
Dim sFilename As String
While ActiveWorkbook.Name = sStartWB And dtTestDate >= dtEarliest
sFilename = Dir(sPath & "ML0003 - Daily Order Entry Information - *.xls*")
If sFilename <> "" Then Workbooks.Open sPath & sFilename
Wend
Dim sFilename作为字符串
而ActiveWorkbook.Name=sStartWB和dtTestDate>=dtwest
sFilename=Dir(sPath和“ML0003-每日订单输入信息-*.xls*”)
如果是sFilename“”,则为工作簿。打开sPath&sFilename
温德
您可能想看看正则表达式:也许其他一些SO成员可以给您展示一个示例,因为它肯定是可行的。