Я пытаюсь использовать Google лист для записи данных и проверки.Например, данные о человеке A вводятся в A1: C1, а затем, когда человек D помечает флажок в D1, он блокирует A1: C1, чтобы предотвратить повторное редактирование человеком A.Этот процесс будет повторяться для каждой строки.
Мне удалось заставить код работать.Но иногда кажется, что когда человек B быстро ставит флажок, код может пропустить одну или две строки и не блокировать каждую строку.Например, когда человек B помечает D1, D2 и D3, система блокирует только 1 и 3 ряд.
Как оптимизировать код, чтобы он всегда блокировал каждую строку, не пропуская одну или две?
function onEdit(e){
var row = e.range.getRow();
var col = e.range.getColumn();
var range = sheet.getRange(row, 1, 1,3)
var protectSs = range.protect().setDescription('Protect row ' + row);
var a = sheet.getRange(row,4,1,1).getValues();
if (col == 4){
if (a == "true") {
var me = Session.getEffectiveUser();
protectSs.addEditor("guest1@gmail.com");
protectSs.removeEditor("guest1@gmail.com");
Logger.log(me);
}
else if (a == "false") {
protectSs.addEditor("guest1@gmail.com");
protectSs.removeEditor("guest1@gmail.com");
}
}
}