我尝试使用相当复杂的连接字符串让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)) & "*")
答案 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之间的数字并返回该月的名称,这就是字符串所需的名称。