Я создаю электронную таблицу, которая отслеживает конкретные данные.Я хочу поместить метку времени в соответствующую соседнюю ячейку, когда я ставлю флажок - альтернативно, я был бы рад примечанию на флажке, указывающем время, когда оно было в последний раз отмечено ИСТИНА.
Я буквально провел целый деньпоиск все в Stackoverflow и Google, и я попробовал много разных методов и функций.Прежде всего, я использовал функцию onEdit(e)
, чтобы (попытаться) добавить метку времени.Ранние попытки выявили известный недостаток, который означал, что onEdit(e)
не захватывал все экземпляры состояния изменения флажка.Соответственно, я изменил свой подход, пытаясь добавить метку времени к соответствующей соседней ячейке, а также добавить примечание к ячейке флажка - оба, казалось, работали спорадически, что было крайне неприятно.
У меня есть три основных проблемы сэта проблема на данный момент:
Знание синтаксиса для проверки значения флажка (я использую == или ===, и я использую '
', "
, или без кавычек?).Это звучит как очень глупый вопрос, но у меня есть трудности с обучением, и у меня возникают серьезные проблемы с сохранением письменной информации в моей памяти: (
Успешная установка оператора if '->' else if 'это будет «включать» или выключать отметку времени в зависимости от состояния флажка.
Я бы предпочел установить заметку с отметкой времени в ячейке флажка, которая очищается при установке флажкане отмечен - однако несколько раз, когда я заставлял его работать, часовой пояс был неправильным. Я много читал о timezone
, но без рабочего примера я не смог понять, как внедрить его в мой код. Я +10 GMT
Я предоставил урезанную версию своей электронной таблицы, содержащую только конкретный лист и код, с которыми у меня возникли проблемы:
https://docs.google.com/spreadsheets/d/1NCdMziBpj0joSv9lQfqT9etz9hMsvgMeuT8X9XTxR20/edit?usp=sharing
Вот последняя итерация кода, над которой я работал. Я, вероятно, попытался с полдюжины совершенно разных функций, но удалил каждую после sevНесколько часов удара по кирпичным стенам:
function onEdit() {
var ss = SpreadsheetApp.getActiveSheet();
if(ss.getName() == "Quests" ) { //checks that we're on the correct sheet
var tickboxCell = s.getActiveCell();
if(tickboxCell.getColumn() == 3 && tickboxCell.getValue() === 'TRUE' ) { //checks the status of the tickbox
var dateCell = tickboxCell.offset(0, 1);
dateCell.setValue(new Date());
}
}
}
Вот пример кода, который я изменил для добавления примечания к флажку:
function setNote(note){
var note = note;
var cell = SpreadsheetApp.getActiveSheet().getActiveCell();
if(note == ""){
cell.clearNote();
}else{
cell.setNote(note);
}
}
Я ожидаю, что в любое время флажок будет отмеченлибо соответствующая ячейка справа будет вводить date()
, либо, в качестве альтернативы, флажок добавит примечание, в котором будет указано «Задание выполнено: дд / мм / ггг» (часовой пояс +10 по Гринвичу).Затем я бы ожидал, что ячейка отметки времени очистится или заметка будет очищена, если состояние флажка не отмечено.