Страница 1 из 1
узнать дату последнего редактирования книги
Добавлено: 28 фев 2008, 08:32
lilu
Добрый день!
Ситуация такова:
Имеется файл Excel в котором периодически создаются листы, нужно, если с момента последнего редактирования изменился месяц текущей даты, то определенные листы удаляются. Как узнать программно дату последнего изменения открываемой книги?

Re: узнать дату последнего редактирования книги
Добавлено: 28 фев 2008, 09:44
VictorM
lilu,не знаю, правильно ли я Вас понял. Как-то делал себе такое:
Код: Выделить всё
Sub НачМесяца()
День = Day(Date)
If День = 1 Or День = 2 Or День = 3 Then
'Ваш код удаления листа
End If
End Sub
у меня этот код удалял устаревшие данные 1,2 или3 числа каждого месяца.
1,2,3 т.к. первый рабочий день месяца мог меняться.
Re: узнать дату последнего редактирования книги
Добавлено: 28 фев 2008, 09:45
SAS888
Функция FileDateTime("Путь и имя файла") вернет дату создания (последнего изменения файла в формате "Дата".
Re: узнать дату последнего редактирования книги
Добавлено: 28 фев 2008, 10:12
lilu
VictorM писал(а):lilu,не знаю, правильно ли я Вас понял. Как-то делал себе такое:
Код: Выделить всё
Sub НачМесяца()
День = Day(Date)
If День = 1 Or День = 2 Or День = 3 Then
'Ваш код удаления листа
End If
End Sub
у меня этот код удалял устаревшие данные 1,2 или3 числа каждого месяца.
1,2,3 т.к. первый рабочий день месяца мог меняться.
Вы меня поняли правильно, но открыть файл могут впервый раз и 5 го числа

Re: узнать дату последнего редактирования книги
Добавлено: 28 фев 2008, 10:20
lilu
SAS888 писал(а):Функция FileDateTime("Путь и имя файла") вернет дату создания (последнего изменения файла в формате "Дата".
Спасибо. Но...
Как я понимаю здесь надо указывать имя файла. А как узнать при открытии текущей книги не зависимо от имени?

Re: узнать дату последнего редактирования книги
Добавлено: 28 фев 2008, 10:31
VictorM
Значит мне было проще

. Там программа работала ежедневно, за исключеним воскресенья (ну и праздники некоторые). А дальше проверка самих данных, они тоже все имеют дату и , если прошлый месяц - удалить.
Re: узнать дату последнего редактирования книги
Добавлено: 28 фев 2008, 10:41
Teslenko_EA
Здравствуйте
lilu.
SAS888 совершенно прав
Код: Выделить всё
Sub sDf()
Dim a As Date
a = FileDateTime("C:\Книга1.xls")
Debug.Print a
End Sub
но при этом файл должен быть закрыт, иначе дата будет текущей.
Проверка программно до открытия, открытие, удаление листов по условию даты.
Лучше информацию о дате последнего изменения записывать в сам документ, это защитит от случайного пересохранения файла
Код: Выделить всё
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim s$
s = Format(Now, "dd/mm/yy hhmmss")
Range("A1") = s ' в ячейке
ActiveSheet.Name = s ' в имени листа
End Sub
и затем сравнивать с "=СЕГОДНЯ()"

Евгений.
Re: узнать дату последнего редактирования книги
Добавлено: 28 фев 2008, 11:13
lilu
Teslenko_EA писал(а):Здравствуйте
lilu.
SAS888 совершенно прав
Код: Выделить всё
Sub sDf()
Dim a As Date
a = FileDateTime("C:\Книга1.xls")
Debug.Print a
End Sub
но при этом файл должен быть закрыт, иначе дата будет текущей.
Проверка программно до открытия, открытие, удаление листов по условию даты.
Лучше информацию о дате последнего изменения записывать в сам документ, это защитит от случайного пересохранения файла Код: Выделить всё
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim s$
s = Format(Now, "dd/mm/yy hhmmss")
Range("A1") = s ' в ячейке
ActiveSheet.Name = s ' в имени листа
End Sub
и затем сравнивать с "=СЕГОДНЯ()"

Евгений.
ДА И я пошла по такому варианту. Может думала чет попроще есть

Спасибо всем. Остановлюсь пока на этом. Но если кто что новенькое подкинет буду рада

.