Excel 使用部分字符串搜索激活带日期的已关闭工作簿

Excel 使用部分字符串搜索激活带日期的已关闭工作簿,excel,vba,Excel,Vba,我有一个名为“PLDriverSensitivityReportSIN_uu21112019_172032.xls”的文件 “PLDriverSensitivityReportSIN_uuuuuuuu”是常量 “21112019”是每天变化的日期 “172032”是随机的 我希望有一个输入框提示“输入今天的日期(ddmmyyyy)”,并将其保存到变量“今天” 目标:宏将使用输入框提示用户输入今天的日期,并在指定目录中对今天的文件进行部分搜索。它应该忽略字符串末尾的随机元素 脚本应根据输入加载

我有一个名为“PLDriverSensitivityReportSIN_uu21112019_172032.xls”的文件

  • “PLDriverSensitivityReportSIN_uuuuuuuu”是常量
  • “21112019”是每天变化的日期
  • “172032”是随机的
我希望有一个输入框提示“输入今天的日期(ddmmyyyy)”,并将其保存到变量“今天”

目标:宏将使用输入框提示用户输入今天的日期,并在指定目录中对今天的文件进行部分搜索。它应该忽略字符串末尾的随机元素

脚本应根据输入加载文件
“C:\Users\xxxx\Desktop\PLDriverSensitivityReportSIN\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

我的当前代码不是动态的-请参见下文

Set wkb2 = Workbooks.Open("C:\Users\xxxx\Desktop\PLDriverSensitivityReportSIN__21112019_172032.xls")

以下内容将帮助您实现所需的结果,它使用Dir()函数使用通配符查找工作簿,然后如果找到工作簿,它将打开它:

Sub OpenWildcard()
Dim sName As String
'Declare the variable for the workbook.
Today = InputBox("Enter Today's Date", "Enter Date")
'Prompt for date entry
'Today = Format(Date, "ddmmyyyy")
'Or use today's date without prompting the user for input
sName = Dir("C:\Users\xxxx\Desktop\PLDriverSensitivityReportSIN__" & Today & "_*" & ".xls")
'check if file is found
If sName <> "" Then
'if found then open
    Workbooks.Open Filename:="C:\Users\xxxx\Desktop\" & sName
End If
End Sub
Sub-OpenWildcard()
像绳子一样模糊
'声明工作簿的变量。
今天=输入框(“输入今天的日期”,“输入日期”)
'提示输入日期
'今天=格式(日期,“ddmmyyyy”)
'或在不提示用户输入的情况下使用今天的日期
sName=Dir(“C:\Users\xxxx\Desktop\PLDriverSensitivityReportSIN\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
'检查是否找到文件
如果我是“”那么
“如果找到了,就打开
工作簿。打开文件名:=“C:\Users\xxxx\Desktop\”&sName
如果结束
端接头

您可以使用带有部分字符串的
Dir()函数将找到您的文件。更多信息永远不要使用InputBox获取日期值,除非绝对没有其他方法。如果必须,请确保在代码中使用它之前将其作为日期进行验证。如果您要求他们输入今天的日期,则没有理由这样做,因为您可以使用
date()
Now()
函数返回该日期。