Вопрос или проблема
У меня есть несколько файлов таблиц Open Office (назовем их исходными файлами), каждый из которых содержит финансовую информацию о конкретном нашем офисе. У меня также есть сводная таблица, которая считывает некоторые ключевые данные о офисах и проводит некоторый анализ.
Для анализа я хотел бы также узнать, насколько устаревшими являются отдельные исходные файлы, когда в последний раз офисы обновляли свои данные. Существует ли способ получить свойства файловой системы “Последнее изменение” и/или “Время создания” для исходных файлов из Open Office и импортировать дату в заданную ячейку?
Альтернативные решения тоже приемлемы, если я смогу получить дату последнего изменения исходных файлов в ячейки сводной таблицы.
Ближайшее, что я нашел для LibreOffice — это функция NOW()
. В интернете много ответов, связанных с Excel, которые требуют Visual Basic. Например, посмотрите
http://www.sumproduct.com/thought/creating-a-timestamp
Надеюсь, вы (и я!) когда-нибудь получите хороший ответ, но спустя 9 месяцев, я полагаю, нам придется подождать немного дольше…
Я продолжаю видеть вопросы о том, как получить дату последнего изменения файла в ячейке Calc без хороших ответов. Ниже приведен код, который я использую. Добавьте его как макрос в свою таблицу.
Function CalcDoc_Modify_Date()
Dim sTemp
' работа с DocInfo
With ThisComponent.DocumentProperties.ModificationDate
' установить формат возврата
' принудить месяц и день к двум цифрам
sTemp = _
Format( .Month, "0#" ) & "https://superuser.com/" & _
Format( .Day, "0#" ) & "https://superuser.com/" & _
.Year & " " & _
Format( .Hours, "0#" ) & ":" & _
Format( .Minutes, "0#" )
End With
' присвоить значение функции возврата
CalcDoc_Modify_Date = sTemp
End Function
В вашей таблице введите =CALCDOC_MODIFY_DATE()
в ячейку, чтобы вызвать эту функцию.
Используйте этот код VBA (макрос) как модуль, он вернет последнюю дату и время изменения файла.
Отказ от ответственности:
Этот код работает только для EXCEL, но никогда для Open Office Calc.
Я опубликовал этот ответ для пользы сообщества, так как считаю, что это редкость.
Function LastWBKModDate() As String
Dim FSO As Object
Dim File As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile(ThisWorkbook.FullName)
LastWBKModDate = Format(File.DateLastModified, "m/d/yy h:n ampm")
MsgBox LastWBKModDate
Set FSO = Nothing
End Function
Как это работает:
- Введите эту формулу в любую пустую ячейку
=LastWBKModDate()
Формула вернет Сообщение
, показывающее Датa и Время
, и как только вы нажмете Ok, последняя измененная дата и время
будут заполнены в ячейке.
Ответ или решение
Чтобы получить дату последнего изменения файла в ячейке OpenOffice Calc, вы можете использовать макрос. К сожалению, встроенных функций для получения информации о времени изменения файлов нет, но с помощью макроса это можно сделать.
Вот шаги, которые вам нужно выполнить:
- Создайте макрос:
- Откройте вашу таблицу в OpenOffice Calc.
- Перейдите в меню
Инструменты
и выберитеМакросы
->Организовать макросы
->OpenOffice Basic
. - В открывшемся окне выберите вашу таблицу в списке, нажмите
Новый
, введите название для модуля, например,LastModifiedDate
. - В открывшемся редакторе кода вставьте следующий код:
Function GetLastModifiedDate() As String
Dim oDoc As Object
Dim oProps As Object
Dim sDate As String
oDoc = ThisComponent
oProps = oDoc.DocumentProperties
' Форматирование даты
sDate = Format(oProps.ModificationDate.Year, "0000") & "-" & _
Format(oProps.ModificationDate.Month, "00") & "-" & _
Format(oProps.ModificationDate.Day, "00") & " " & _
Format(oProps.ModificationDate.Hours, "00") & ":" & _
Format(oProps.ModificationDate.Minutes, "00")
GetLastModifiedDate = sDate
End Function
-
Сохраните и закройте редактор макросов.
-
Используйте макрос в вашей таблице:
- Перейдите в любой пустой ячейке вашей таблицы и введите формулу:
=GetLastModifiedDate()
- Запустите макрос:
- После ввода формулы нажмите Enter, и ячейка отобразит дату и время последнего изменения файла.
Важные моменты:
- Макросы могут потребовать активацию в настройках безопасности. Если вы не видите, что макрос работает, убедитесь, что в настройках разрешено выполнение макросов.
- Обратите внимание, что при изменении файла и его сохранении необходимо заново вызывать макрос, чтобы обновить дату последнего изменения.
Таким образом, вы сможете отслеживать дату последнего изменения ваших исходных файлов в сводной таблице OpenOffice Calc.