最新のダウンロードした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ファイルには、私のダウンロードファイルにあり、filePathに文字列が正しいパスであることを出力しますが、私は続けますファイルが見つからないというエラーが表示されます。 Dir(pathToFile)の最初の使用で失敗します。どんな助けでも大歓迎です。
エラーはDIRではありません。エラーはこの行にあります。 'lastMod = FileDateTime(StrFile)'完全なパスを指定する必要があります。その他の場合も同様です。 –