Я не знаю, нужно ли мне сбросить или как выполняется cell_test, но это будет увеличивать i при каждом запуске функции.
function cell_test() {
try {
// Increment i
var props = PropertiesService.getScriptProperties();
var i = props.getProperty("Test");
if( i === null ) {
i = 8;
}
else {
i++;
}
props.setProperty("Test", i);
// Put your code here
var ss = SpreadsheetApp.getActiveSpreadsheet ();
var source = ss.getRange ("A!C1");
var destSheet = ss.getSheetByName("B");
var destRange = destSheet.getRange(i,2);
source.copyTo (destRange, {contentsOnly: true});
}
catch(err) {
Logger.log(err);
}
}
Я не думаю, что принуждать обратный вызов предназначен, чтобы быть улицей с двусторонним движением. Одно обходное решение должно было бы обновить значение модели в принуждать обратном вызове.
Я думаю, что в этом вся идея принуждения - правильное значение на лету, не вызывая изменения каких-либо других зависимостей. Вы можете использовать приведенный ниже код вместо собственных механизмов принуждения:
OnPChanged(/* ... */)
{
// ...
var coercedP = CoerceP(P);
if (P != coercedP)
P = coercedP;
// ...
}
HTH.