Dir函数没有find文件,即使在将path粘贴为参数之后

我已经尝试使用一个相当复杂的连接string来使Dir()函数工作一段时间,如下所示:

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

消息框什么都不打印(这只是一个空白的消息框)。 在试图找出我是否错误地input了path之后,我打开了正确的文件,并从选项中拷贝了它的实际path,然后执行: Path = Dir("PathToSubFolder\2016\June\Production June 2016.xlsx") ,即没有任何串联或任何东西,只是实际的文件path和名称。 但是,打印MsgBox Path再次没有返回(NULL)。

有没有人有任何线索为什么这不会工作? 从相同的工作手册(尽pipe不是来自同一个模块),我已经非常广泛地使用了Dir,没有任何问题。

编辑:最后find一个解决方法。 我只是用文件pathtoFile的path做了一个variables,然后:

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

 Month(Date) 

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

PathToSubFolder \ 2016 \ 6 \ Production 6 2016.xlsx

这不存在,因此你得到一个空string返回。

尝试

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

MonthName()方法使用1到12之间的数字,并返回该月份的名称,这是您所需的string。