В Z6
есть формула: if the checkbox in E6 = TRUE (i.e. checked) then 'X' else 'Y'
. Это отлично работает. К сожалению, некоторые пользователи по ошибке снимают флажок, и поэтому мне нужно реализовать logi c, чтобы добавить его обратно. Я пытаюсь реализовать лог c, как предложено здесь , но как onEdit
. Я действительно не знаю, что я делаю, поэтому предложения ОЧЕНЬ приветствуются:
function onEdit(e) {
var rangeList = SpreadsheetApp.getActive().getSheetByName('Sheet1').getRangeList(['E6:E7']);
for (var i=0; i<rangeList.getRanges().length; i++ ) {
var range = rangeList.getRanges()[i];
for (var j=0; j<range.getValues().length; j++ ) {
var value = range.getValue()[j];
Logger.log("i: " + i);
Logger.log("j: " + j);
Logger.log("value: " + value);
var values = range.getValues();
for ( var val in values ) {
Logger.log("values[val]: " + values[val]);
if( values[val] != 'TRUE' && values[val] != 'FALSE' ) {
range.insertCheckboxes('TRUE', 'FALSE');
Logger.log("arrived at insert checkbox");
}
}
}
}
}
E6:E7
- это только первый диапазон (всего около 30). Это происходит так, как и предполагалось, НО до первого выполнения onEdit
, следующая формула =WENN(E7=FALSE();"is false";E7)
показывает is false
. НО после запуска скрипта результат формулы будет FALSE
. Таким образом, прежде чем я активирую выше onEdit
функцию, формула =WENN(E7=FALSE();"is false";E7)
показывает is false
.
Как только я активирую выше onEdit
функцию, не имеет значения, какую ячейку я изменяю, результат формулы переключается на FALSE
. Вот протокол протокола для этого начального прогона, изменяющего любую ячейку, кроме E6:E7
:
[20-01-07 15:11:33:557 CET] i: 0
[20-01-07 15:11:33:558 CET] j: 0
[20-01-07 15:11:33:558 CET] value: F
[20-01-07 15:11:33:559 CET] values[val]: FALSE
[20-01-07 15:11:33:559 CET] values[val]: TRUE
[20-01-07 15:11:33:560 CET] i: 0
[20-01-07 15:11:33:560 CET] j: 1
[20-01-07 15:11:33:560 CET] value: A
[20-01-07 15:11:33:561 CET] values[val]: FALSE
[20-01-07 15:11:33:561 CET] values[val]: TRUE
Аналогично, следующие формулы для ячеек H6
и H7
:
-
=WENN(H6=FALSE();"is false";H6)
показывает is false
. =WENN(H7=FALSE();"is false";H7)
показывает is false
.
Вот журнал, когда я выполняю действие копирования H6:H7
в ячейки E6:E7
:
[20-01-07 06:01:50:720 PST] i: 0
[20-01-07 06:01:50:720 PST] j: 0
[20-01-07 06:01:50:721 PST] value: undefined
[20-01-07 06:01:50:722 PST] values[val]: false
[20-01-07 06:01:50:897 PST] arrived at insert checkbox
[20-01-07 06:01:50:898 PST] values[val]: true
[20-01-07 06:01:51:041 PST] arrived at insert checkbox
[20-01-07 06:01:51:168 PST] i: 0
[20-01-07 06:01:51:168 PST] j: 1
[20-01-07 06:01:51:169 PST] value: A
[20-01-07 06:01:51:170 PST] values[val]: FALSE
[20-01-07 06:01:51:170 PST] values[val]: TRUE
Опять в конце формула =WENN(E7=FALSE();"is false";E7)
показывает FALSE
.
Мне нужно, чтобы после повторного создания удаленного флажка onEdit
функция, формула =WENN(E7=FALSE();"is false";E7)
показывает is FALSE
.