Скрипт для очистки заметки от непроверенного флажка - PullRequest
2 голосов
/ 10 октября 2019

Я не программист, но люблю время от времени играть со скриптами в качестве хобби.

Я построил электронную таблицу, чтобы фиксировать временную метку в «заметке» каждый раз, когда флажок установлен,соединяя код из разных источников. Тем не менее, я не могу снять отметку в флажке, когда она не отмечена.

ОБРАЗЕЦ КОДА

function onEdit(e) {
  if(e.value != "TRUE") return;
e.source.getActiveSheet().getRange(e.range.rowStart,e.range.columnStart).setNote('Completed: ' + Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "dd-MM-yy HH:mm:ss"));
}

примечание: возможно ли это с комментариямивместо заметок?

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Попробуйте:

function onEdit(e) {
  if(e.value == "FALSE"){ 
    e.range.clearNote();
    return;
  }
  e.range.setNote('Completed: ' + Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "dd-MM-yy HH:mm:ss"));
}

Ваш код был верным, вам просто нужно было удалить примечание внутри оператора if, я использовал clearNote() ( Документация здесь ) дляудалите их, если значения были "FALSE" Сама заметка может оставаться видимой на секунду после того, как вы снимите флажок, но она исчезнет и будет удалена из ячейки.

0 голосов
/ 10 октября 2019

Попробуйте:

function onEdit(e) {
  if(e.range.getSheet().getName()!='Sheet1')return;//Limits action to one sheet
  //e.source.toast('flag1');
  if(e.range.columnStart==1 && e.value == "TRUE") {//I have the checkboxes in columnA
    //e.source.toast('flag2');
    e.range.setNote('Completed: ' + Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "dd-MM-yy HH:mm:ss"));//sets note to completed
  }
  if(e.range.columnStart==1 && e.value == "FALSE") {
    //e.source.toast('flag3');
    e.range.setNote('');//Clears note
  }
}

В вашем случае это, вероятно, то, что вы хотите.

function onEdit(e) {
  if(e.value == "TRUE") {
    e.range.setNote('Completed: ' + Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "dd-MM-yy HH:mm:ss"));
  }
  if(e.value == "FALSE") {
    e.range.setNote('');
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...