CheckBox - После проверки вы не можете снять галочку? - GoogleAppsScript / GoogleSheets - PullRequest
0 голосов
/ 05 февраля 2020

Можно ли кодировать флажок, который когда-то проверял, останется проверенным?

Мой код будет запускаться снова, если человек проверил - затем снял галочку - затем случайно проверил снова, что я не хочу, чтобы это произошло.

Вот код

  function onEdit(e) {

  AddPalletCount(e)
  AddCheckBox(e)
  }

 function AddCheckBox(e){
 var row = e.range.getRow();
 var col = e.range.getColumn();

 if(col === 2 && row > 2 && e.source.getActiveSheet().getName() === "PREPSHEET"){

  e.source.getActiveSheet().getRange(row,4).setValue(new Date());
  e.source.getActiveSheet().getRange(row,3).setValue("Done");

  var sheet = SpreadsheetApp.getActiveSheet();
  var activeRange = sheet.getActiveRange();
  var criteria = SpreadsheetApp.DataValidationCriteria.CHECKBOX;
  var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build();
  var range = sheet.getRange(activeRange.getRow(), 5);
  range.setDataValidation(rule);
  }}

Заранее спасибо

1 Ответ

1 голос
/ 05 февраля 2020

Флажок, который остается чеком после его проверки

На самом деле он не остается проверенным, но как только вы проверяете и пытаетесь снять флажок, он перепроверяется сам. Он должен измениться, чтобы получить триггер onEdit.

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

function onMyEdit(e) {
  //e.source.toast('Entry');//debug
  var sh=e.range.getSheet();
  //var log=Utilities.formatString('oldValue: %s value: %s',e.oldValue,e.value);//debug
  //sh.getRange(sh.getRange(1,9,sh.getLastRow(),1).getValues().filter(String).length+1,9).setValue(log);//debug  
  if(e.range.columnStart==2 && e.range.rowStart>2 && sh.getName()=='DONATIONS RECEIVED') {
    //e.source.toast('Access');//debug
    if(e.oldValue=='true' && e.value=='FALSE') {
      //e.source.toast('SetValue');//debug
      e.range.setValue("TRUE");
    }
  }
}

Вы могли бы wi sh оставить строки 4 и 5 для будущей работы по отладке onEdit, поскольку я нашел их весьма полезными для решения этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...