Excel 2010中的Dir函数VBA不能正常工作

问题描述:

我试图通过给定的目录来查找最新下载的csv文件。由于某些原因,即使文件存在,我的Dir函数也不会找到任何文件。我对VBA并不完全熟悉,所以我可能会错过某种参考来执行Dir函数,但我无法在网上找到任何告诉我需要的东西。所有的例子和论坛都像我一样使用Dir,但我无法工作。下面是代码,请告诉我,如果你能看到我在做什么错:Excel 2010中的Dir函数VBA不能正常工作

Public Function Get_File() as string 
    Dim filePath As String 

    ChDir ("..") 
    filePath = CurDir 
    'Goes back to Documents directory to be in same directory as macro 
    ChDir (filePath & "\Documents") 
    filePath = filePath & "\Downloads\test.txt" 
    filePath = getLatestFile(filePath) 

    Get_File = filePath 
End Function 

Public Function getLatestFile(pathToFile As String) As String 
    Dim StrFile As String 
    Dim lastMod As Variant 
    Dim nextMod As Variant 
    Dim lastFileName As String 

    StrFile = Dir(pathToFile) 
    lastFileName = StrFile 
    lastMod = FileDateTime(StrFile) 
    While Len(StrFile) > 0 
     Debug.Print StrFile 
     StrFile = Dir 
     nextMod = FileDateTime(StrFile) 
     If nextMod > lastMod Then 
      lastFileName = StrFile 
      lastMod = nextMod 
     End If 
    Wend 

    getLatestFile = lastFileName 
End Function 

test.txt文件是在我的下载文件的文件路径字符串打印出来是正确的道路,但我一直得到一个错误,指出它找不到该文件。它在第一次使用Dir(pathToFile)时失败。任何帮助将不胜感激。

+0

该错误是不与DIR。错误是在这行'lastMod = FileDateTime(StrFile)'你必须提供完整的路径。对其他人也一样。 – 2012-07-26 18:11:13

Dir()只返回路径的文件名部分,即它不返回文件夹部分。例如,

Dir("C:\MyPath\MyFile.txt") 

MyFile.txt返回不C:\MyPath\MyFile.txt

+0

好的,就是这样。感谢您的回答,我不知道这是迪尔的情况。 Excel中的帮助部分指出,但由于某种原因,我认为它会返回整个路径。这为我节省了几个小时。 – derigible 2012-07-26 18:46:34