Страницы: 1
RSS
Определить имя файла созданного сегодня
 
Доброго всем дня. Посерфил вопрос по форумам но не нашел простого решения. У меня ситуация в директорию складываются файлы с похожими названиями но обработке нужно выбрать только файл который создан сегодня для преобразования его в удобочитаемый вид. Как получить из директории название только такого файла? Помогите, плиз.
 
Цитата
написал:
Как получить из директории название только такого файла?
1. Создаем запрос к папке в PQ
2. Там же отфильтровываем нужный файл
3. Там же можно и обработать
Цитата
написал:
для преобразования его в удобочитаемый вид

кстати, в соседней ветке как раз таки похожее обсуждается... ;)
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=165790&a...
Изменено: BodkhiSatva - 20.06.2024 10:27:22
 
BodkhiSatva, мне нужно только в excel это отработать. Я представляю себе процесс как:
определить файлы в директории объявить их массивом
пробежаться циклом по этому массиву сравнивая атрибут даты создания файла с текущей датой
получить, на выходе, имя файла соответствующее искомому.

по командам екселя определение имени файла в директории прекрасно отрабатывает команда dir
но она возвращает первое имя файла в директории. Надеялся что есть вариант ее модификации или другая команда которая позволяет получить искомое имя.
 
Цитата
alex_j написал:
но она возвращает первое имя файла в директории
это смотря как использовать: Просмотреть все файлы в папке
ну а получить дату создания еще проще:
Код
FileDateTime(sFolder & sFiles)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
мне нужно только в excel это отработать.
если общо - PQ - "надстройка" и начиная с 2016 встроена в ексель и поиск и дальнейшая обработка в нем намного проще и удобнее нежели возня с макросом по твоему алгоритму

Цитата
Дмитрий(The_Prist) Щербаков написал:
ну а получить дату создания еще проще:

ага, а потом ему надо выбрать самый свежий файл, потом открыть его, потом обработать, потом сохранить, потом... хз чего бы еще с  ним поделать и все это можно легче и проще забацать в PQ... )))
Изменено: BodkhiSatva - 20.06.2024 11:04:44
 
Дмитрий(The_Prist) Щербаков,  т.е. моя задача решается строкой:
Код
 if FileDateTime(sFolder & Dir(sFolder & "*.xls*"))="today_" & Format(Date, "YYYYMMDD") then fname=sFolder & Dir(sFolder & "*.xls*")
 
BodkhiSatva, задача получить имя файла. Часть кода где идет обработка файла уже готова и отрабатывает на директориях с единичным файлом
 
Цитата
написал:
if FileDateTime(sFolder & Dir(sFolder & "*.xls*"))="today_"
А цикл по файлам где-то за бортом остался, Вы решили его просто не приводить?
Плюс посмотрите, что возвращает функция FileDateTime. Зачем сравнивать её результат с текстом "today_" и датой? Т.е. приведенная строка - полная глупость. Сравнивать дату и её текстовое отформатированное представление.  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
ага, а потом ему надо выбрать самый свежий файл, потом открыть его, потом обработать,
и? В чем Вы видите сложность? Там тоже не так уж и сложно это сделать.
Может у человека сложность именно в том, что нельзя распространить это через PowerQuery - мы же не знаем. Было упомянуто использование Dir - я намекнул, что оно и в цикле нормально справляется с задачей.  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, а можно использовать filedatetime как параметр для dir при выборе файла? если dir фактически перебирает файлы в папке?
 
Цитата
написал:
а можно использовать filedatetime как параметр для dir при выборе файла?
нет. Она не выбирает файлы по аттрибутам, только по маске имени или пути. Да что Вас пугает в цикле? Там же не сильно сложно - обычное сравнение, а цикл-то уже готовый в статье:
Код
Sub GetTodayFile()
    Dim sFolder As String, sFile$, sResFile$, sFFullName$
    Dim dt As Date
    
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        sFolder = .SelectedItems(1)
    End With
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    sFile = Dir(sFolder & "*.xls*")
    Do While sFile <> ""
        'открываем книгу
        sFFullName = sFolder & sFile
        dt = Int(FileDateTime(sFFullName))
        If dt = Date Then
            sResFile = sFFullName
            Exit Do
        End If
        sFile = Dir
    Loop
    
    If sResFile <> "" Then
        MsgBox "Найден файл, созданный сегодня: '" & sResFile & "'", vbInformation, "www.excel-vba.ru&quot;
    Else
        MsgBox "В выбранной папке нет файлов, созданных сегодня", vbInformation, "www.excel-vba.ru&quot;
    End If
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Спасибо.
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
и? В чем Вы видите сложность? Там тоже не так уж и сложно это сделать.
ээээммм.... ИМХО?... ;))))

Скрытый текст
 
Цитата
BodkhiSatva написал:
ээээммм.... ИМХО?
Естественно :) Равно как и Ваше утверждение:
Цитата
BodkhiSatva написал:
все это можно легче и проще забацать в PQ
Зачем Вы решили за ТС где ему проще и легче? :) Может ему в PQ как раз сложнее, если он его в жизни ни разу не видал :) А с Dir он уже знаком судя по первому посту, значит знаком и с макросами.
Я же просто подкинул вариант, который согласуется с заданной темой и подходит под задачу ТС. Да и делает ровно то, что просили. А уже использовать его или нет - пусть ТС решает.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
офф...
Цитата
Дмитрий(The_Prist) Щербаков написал:
Равно как и Ваше утверждение:
таки я на него и писал, мол, это моё ИМХО... ))) :D

Цитата
Дмитрий(The_Prist) Щербаков написал:
Я же просто подкинул вариант
а я что сделал?  8-0  :D  :D  :D

все, ухожу, ухожу... ;))))
 
Цитата
BodkhiSatva написал:
таки я на него и писал, мол, это моё ИМХО
таки цитату-то Вы мою для этого привели :D
Да и вообще - нет смысла спорить. ТС уже определился что ему надо и в каким средствами :)
Изменено: Дмитрий(The_Prist) Щербаков - 20.06.2024 12:43:44
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Читают тему
Наверх