Получение даты последнего изменения в качестве значения ячейки в Open Office Calc

Вопрос или проблема

У меня есть несколько файлов таблиц 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, вы можете использовать макрос. К сожалению, встроенных функций для получения информации о времени изменения файлов нет, но с помощью макроса это можно сделать.

Вот шаги, которые вам нужно выполнить:

  1. Создайте макрос:
    • Откройте вашу таблицу в 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
  1. Сохраните и закройте редактор макросов.

  2. Используйте макрос в вашей таблице:

    • Перейдите в любой пустой ячейке вашей таблицы и введите формулу:
=GetLastModifiedDate()
  1. Запустите макрос:
    • После ввода формулы нажмите Enter, и ячейка отобразит дату и время последнего изменения файла.

Важные моменты:

  • Макросы могут потребовать активацию в настройках безопасности. Если вы не видите, что макрос работает, убедитесь, что в настройках разрешено выполнение макросов.
  • Обратите внимание, что при изменении файла и его сохранении необходимо заново вызывать макрос, чтобы обновить дату последнего изменения.

Таким образом, вы сможете отслеживать дату последнего изменения ваших исходных файлов в сводной таблице OpenOffice Calc.

Оцените материал
Добавить комментарий

Капча загружается...