即使将路径复制粘贴为参数,Dir函数也找不到文件

时间:2016-06-22 10:22:06

标签: excel vba excel-vba

我尝试使用相当复杂的连接字符串让Dir()函数工作一段时间,如下所示:

  Dim Path as String

  Path = Dir("PathToSubfolder\" & Year(Date) & "\" & MonthName(Month(Date)) &  _ 
                             "\Production " & MonthName(Month(Date)) & "*.xlsx")
  MsgBox Path

消息框不打印任何内容(它只是一个空白的消息框)。在试图弄清楚我是否错误输入了Path之后,我打开了正确的文件,并从选项中复制了它的实际路径,然后执行:Path = Dir("PathToSubFolder\2016\June\Production June 2016.xlsx"),即没有任何连接或任何东西,只是实际的文件路径和-name。但是,Printing MsgBox Path没有返回任何内容(NULL)。

有没有人知道为什么这不起作用?我在相同的工作簿(尽管不是来自同一个模块)的最后几天非常广泛地使用了Dir而没有任何问题。

编辑:终于找到了解决方法。我只是创建了一个带有文件路径的变量pathtoFile,然后是:

Dim pathtoFile As String 
pathtoFile = "C:\Path.to.file\"
Path = Dir(pathtoFile & "*" & MonthName(Month(Date)) & "*")

1 个答案:

答案 0 :(得分:2)

Month(Date)

将返回一个数字,而不是一个名字。所以你传递了以下论点:

  

PathToSubFolder \ 2016 \ 6 \ Production 6 2016.xlsx

哪个不存在,因此返回一个空字符串。

尝试

Dim Path as String

Path = Dir("PathToSubfolder\" & Year(Date) & "\" & MonthName(Month(Date)) &  _ 
                             "\Production " & MonthName(Month(Date)) & "*.xlsx")
MsgBox Path

MonthName()方法取1到12之间的数字并返回该月的名称,这就是字符串所需的名称。