每日生成的带有数据的新Excel文件将具有以下名称:“RawData_ today date - time .xlsx”,例如:“Report_2017-04-10- 10-17-42.xlsx”。我正在尝试设置一个正确的文件路径,只知道其名称的第一部分而忽略时间 -part?
正如@ShaiRado和@RobinMackenzie所建议的那样,以下代码应该可以正常运行:
Dim RawDataPath As String
Dim FolderPath As String
FolderPath = ThisWorkbook.Path & "\"
RawDataPath = FolderPath & "Report" & format(Date, "yyyy-mm-dd") & "*.xlsx"
但是,我仍然收到错误消息,我认为问题不在上面。
我使用
查找了一个文件RawDataPath = Dir$(FolderPath & "Report" & format(Date, "yyyy-mm-dd") & "*.xlsx")
If (Len(RawDataPath) > 0) Then
MsgBox "found " & RawDataPath
End If
结果 - >找到正确的文件。 代码的第二部分:
'check if the file exists
If FileExists(RawDataPath) = False Then RawDataPath = BrowseForFile("File not found. Please select the file.")
'check if the workbook is open
If Not IsWbOpen(RawDataPath) Then Workbooks.Open RawDataPath
检查文件是否存在失败。 运行时错误'1004':抱歉,我们找不到False.xlsx。它是否可能被移动,重命名或删除?
我没有说明为什么要寻找False.xlsx?我做错了什么?
任何帮助都将不胜感激。
答案 0 :(得分:1)
好的,最后找到了解决方案,感谢the post:
Dim RawDataPath As String
Dim FolderPath As String
FolderPath = ThisWorkbook.Path & "\"
RawDataPath = Dir$(FolderPath & "Report" & format(Date, "yyyy-mm-dd") & "*.xlsx")
If (RawDataPath <> "") Then
Workbooks.Open FolderPath & RawDataPath
Else
MsgBox "not found"
End If
注意:Dir $函数只返回文件的名称,而不是它的整个路径。