@CREWbig

Как в Google sheets так,чтоб при изменении флажка выставлялось время нажатия на флажок?

Имеются флажки на F3:F5.
На G3:G5 ячейки,куда должно вписываться время изменения значения флажка с FALSE - TRUE.
Пробовал сделать формулой "IF(F4=TRUE;NOW();"Время окончания")", с одной парой это работает,а вот при обновлении страницы - он обновляет ячейку G3
Или же при выставлении флажка в ячейке F4 меняется время в остальных ячейках.
Хотелось бы сделать,чтобы они были независимы друг от друга.Я так понимаю нужно использовать скрипты,но я в них не силен :(
  • Вопрос задан
  • 1686 просмотров
Решения вопроса 1
ProgrammerForever
@ProgrammerForever Куратор тега Google Sheets
Учитель, автоэлектрик, программист, музыкант
Используйте function onEdit(event) для определения факта изменения ячейки.
event.source.getActiveRange().getA1Notation() для определения адреса ячейки
Ниже код для проверки листа "Лист1" и ячейки "A1" в ней.
function onEdit(event){  
  var as = event.source.getActiveSheet();
  if ((event.source.getActiveRange().getA1Notation()=="A1")&&(as.getName()=="Лист1")&&(event.source.getActiveRange().getValue()===true)){  
    as.getRange("B1").setValue("Флажок установлен "+formatDateTime(new Date()));
  };
};

function formatDateTime(date) {

  var dd = date.getDate();
  if (dd < 10) dd = '0' + dd;
  var mm = date.getMonth() + 1;
  if (mm < 10) mm = '0' + mm;
  var yy = date.getFullYear() % 100;
  if (yy < 10) yy = '0' + yy;
  
  var hh = date.getHours();
  if (hh < 10) hh = '0' + hh;
  var MM = date.getMinutes();
  if (MM < 10) MM = '0' + MM;
  var ss = date.getSeconds();
  if (ss < 10) ss = '0' + ss;
  
  return dd + '.' + mm + '.' + yy + ' ' + hh + ':'+ MM + ':'+ ss;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы