Функция Dir в Excel 2010 VBA не работает
-
12-12-2019 - |
Вопрос
Я пытаюсь просмотреть заданный каталог, чтобы найти последний загруженный файл CSV.По какой-то причине моя функция Dir не находит ни одного файла, даже если он существует.Я не совсем знаком с VBA, поэтому, возможно, мне не хватает какой-то справки для выполнения функции Dir, но я не могу найти в Интернете ничего, что подсказывало бы мне, что мне это нужно.Во всех примерах и форумах используется Dir так же, как и я, но я не могу заставить работать свой.Вот код, скажите, пожалуйста, видите ли вы, что я делаю неправильно:
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()
возвращает только часть имени файла в пути, т. е. не возвращает часть папки.Например,
Dir("C:\MyPath\MyFile.txt")
возвращает MyFile.txt
нет C:\MyPath\MyFile.txt