Страницы: 1
RSS
Вывод даты сохранения файла
 
Доброго дня! Подскажите, пожалуйста, как в ячейку вставить дату последнего сохранения файла. Причем другого файла, а не текущего. Т.е. сделать так, чтобы в файле отображалась информация так:

Имя файла - дата обновления
Файл1 - ХХ.ХХ.ХХ
Файл2 - ХХ.ХХ.ХХ

и т.д.

Имя файла понятно сам напишу, а вот с датой вопрос... Возможно ли так сделать?
 
Макросом можно. И ещё не плохо бы знать вообще что за файлы и зачем это. Годится ли дата последнего копирования, или нужна дата именно последнего сохранения?
Я например недавно для экселевских файлов делал так:
Код
    Set wb = GetObject(pth)
    For Each n In wb.BuiltinDocumentProperties
        If n.Name = "Last save time" Then tm = n.Value: Exit For
    Next

За оптимальностью не гнался, файл был всего один.
Изменено: Hugo - 30.04.2020 12:57:10
 
Цитата
Hugo написал:
И ещё не плохо бы знать вообще что за файлы и зачем это. Годится ли дата последнего копирования, или нужна дата именно последнего сохранения?
все файлы Excel, расположены в разных папках. Нужно это для обновления своей отчётности, чтобы не смотреть отдельно файл когда был последний раз сохранен, а чтобы один файл открыть и можно было посмотреть стоит свой отчёт обновлять на основе новых данных или нет.
 
Странно, обычно отвечают только на второй вопрос :)
Ну в целом я вероятно уже ответил... Если нужна дата сохранения - нужно каждый открыть и эту дату извлечь.
Изменено: Hugo - 30.04.2020 13:07:30
 
Цитата
Hugo написал:
Странно, обычно отвечают только на второй вопрос
Цитата
штирлиц знал что лучше всего запоминается последняя фраза
 
Цитата
Hugo написал:
нужно каждый открыть и эту дату извлечь.
я так понял, что надо в каждый файл добавить макрос? Дело в том, что файлы запаролены, так что это не вариант. Думал есть способ как-то извлекать дату сохранения не открывая каждый файл... Чтобы я только свой открыл и там даты сохранения были других файлов. Видимо это никак не сделать(

спасибо за ответ!
Изменено: xottab32 - 30.04.2020 13:14:02
 
Цитата
xottab32 написал:
я так понял, что надо в каждый файл добавить макрос
На основании чего Вы сделали такой вывод?
 
Цитата
Hugo написал: Если нужна дата сохранения - нужно каждый открыть и эту дату извлечь
или я не так понял?
 
xottab32, советую Вам посетить раздел "Приемы" - там очень много "полезгяшек". А вот эта статья как раз по Вашему вопросу.
 
Цитата
Юрий М написал:
А вот эта  статья  как раз по Вашему вопросу.
спасибо большое! Очень помогли!
 
Не открывая можно получить Date modified файла, но вот будет ли она всегда совпадать с датой, когда в файле нажали "Сохранить" - не уверен. Но вообще в худшем случае обновите по неизменённым данным, не страшно.
P.S. Да вот хотя бы взять файл file-list.xlsm из ссылки выше на приёмы - какая дата нужна: 30.11.2019 10:32:25 или дата когда Вы его скачали?
Изменено: Hugo - 30.04.2020 15:37:30
 
Цитата
Hugo написал:
Не открывая можно получить Date modified файла,
Однако система позволяет получить это "не открывая файл", в том числе и если файл под паролем.
C# шники пишут что так
Код
var workbook = new Application().Workbooks.Open(@"somePath.xls", ReadOnly: true);
var lastSavedDate = (DateTime)workbook.BuiltinDocumentProperties["Last Save Time"].Value;
По вопросам из тем форума, личку не читаю.
 
Да, можно тот первый код упростить, брать прямо
Код
Debug.Print ThisWorkbook.BuiltinDocumentProperties("Last save time").Value
Изменено: Hugo - 30.04.2020 18:32:47
 
Цитата
Hugo написал:
первая строка работает, вторая нет:
вааще или только шифрованные не берет?
По вопросам из тем форума, личку не читаю.
 
Да я поспешил, не в тот файл код кинул, он ещё был несохранённый :) Удалил...
 
Цитата
Hugo написал:
он ещё был несохранённый
Это серьезное расширение функционала. Дата изменения без сохранения :-)
По вопросам из тем форума, личку не читаю.
 
Да куча файлов открыта, не в тот модуль писал...
 
Цитата
Hugo написал:
не в тот модуль писал...
это не так важно все равно придется открывать файл если делать нечто вроде отчета.
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх