设置一个指向excel文件的正确路径,只知道其名称的第一部分

时间:2017-04-10 13:30:32

标签: excel excel-vba vba

每日生成的带有数据的新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?我做错了什么?

任何帮助都将不胜感激。

1 个答案:

答案 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 $函数只返回文件的名称,而不是它的整个路径。