- Вы хотите поместить объект даты в столбец «F», если установлен флажок в столбце «D».
- Вы хотите запустить сценарий с триггером события OnEdit.
Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Точки модификации:
- В вашем сценарии я считаю, что оператор if
if(r.getValue() == "TRUE") {}
требуется изменить. В этом случае, когда r.getValue()
является логическим типом, r.getValue() == "TRUE"
всегда равен false
. При этом скрипт в операторе if не запускается. Я думаю, что это является причиной вашей проблемы.
Модифицированный скрипт 1:
Когда ваш скрипт модифицирован, пожалуйста, измените его следующим образом.
От:
if(r.getValue() == "TRUE") {
Кому:
if(r.getValue() === true) {
или
if(r.isChecked()) {
- В этом случае вы также можете использовать
isChecked()
.
Модифицированный скрипт 2:
Когда используется объект события, стоимость процесса вашего скрипта может быть немного уменьшена. Ref Пример сценария с использованием объекта события выглядит следующим образом.
Пример сценария:
function onEdit(e) {
var range = e.range;
var sheet = range.getSheet();
if(sheet.getSheetName() == "Sheet1") {
if(range.columnStart == 1) {
var nextCell = range.offset(0, 4);
nextCell.setValue(new Date());
} else if(range.columnStart == 4 && range.isChecked()) {
var nextCell = range.offset(0, 2);
nextCell.setValue(new Date());
}
}
}
Ссылки:
Если я неправильно понял ваш вопрос и это было не то направление, которое вы хотите, я прошу прощения.