1

Я использую функцию NOW() во многих местах моей таблицы, которая в основном является документом контрольного списка.

Поэтому мое требование заключается в том, чтобы для каждого шага он записывал дату и время, когда этот шаг был завершен. Но всякий раз, когда используется Now() ... все ранее обновленные ячейки с датой и временем также обновляются снова. Следовательно, в конце дня я не могу получить подробное время выполнения каждого из этих шагов.

Вот как я создал на данный момент:

  • Использовали флажок для каждого шага. После завершения шага, нажав на флажок, он обновит ячейку A1 как "Завершено".
  • В ячейку B1 я поместил следующую функцию, которая проверит значение в A1. Если это "Завершено", то оно обновит значение B1 с текущей датой и временем, используя Now()

    =IF(A1="Completed";NOW();"")
    

Пожалуйста, дайте мне знать решение для этого. Также, если есть какая-либо другая альтернатива.

1 ответ1

1

Это то, что мне часто приходится делать, но единственные известные мне варианты не идеальны:

  1. Вы можете скопировать ячейку как обычно, но используйте "Специальная вставка" и снимите все галочки, кроме "Число" или что-либо еще, что вы хотите вставить.

  2. Или вы можете "копировать и вставлять по доверенности", то есть копировать и вставлять в обычное текстовое поле (блокнот, адресную строку вашего любимого браузера, открытое окно оболочки - все, что вам удобнее). Затем скопируйте этот текст и вставьте его в ячейку.

Я обычно выбираю второй метод, потому что на самом деле он намного быстрее (потому что вы можете использовать сочетания клавиш), чем "Специальная вставка".

Редактировать:
Я неправильно понял вопрос. Если вы ищете способ сделать это программно, это возможно. Вам просто нужно использовать свойство .value ячейки.

Я протестировал это в LibreOffice Calc, и он работает. Я подозреваю, что он также будет работать в OpenOffice Calc, поскольку он адаптирован из того фрагмента OpenOffice, с которым я связан в комментариях:

Sub GetDate
    Dim myTable as Object, mySheet as Object, _
        curDate as Date, curTime as Date
    Const TRRange = "A2:F2"  'Template row range
    Const ColPosDate = 0     'Date column position
    Const ColPosTime = 5     'Time column position

    mySheet = ThisComponent.Sheets(0)
    myTable = mySheet.getCellRangeByName(TRRange)

    'curDate and curTime should be identical as they're both just NOW() cells
    ' --one formatted (for display) as date and the other as time
    curDate = myTable.getCellByPosition(ColPosDate,0).value
    curTime = myTable.getCellByPosition(ColPosTime,0).value

    print curDate
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .