Как узнать на каком листе пользователь
Есть лист в таблице, из которого люди берут данные на свои вкладки. Они отмечают строки галочками, запускают скрипт и эти строки переносятся к ним на свои листы. Из общего листа эти строки убираются. При одновременной работе в этом общем листе возникает путаница, одновременно ставят галочки несколько человек и к тому кто первый запустил скрипт во вкладку переносятся все отмеченные строки . И свои и чужие. Подскажите подход к решению этой проблемы. Выводить сообщение типа "Лист занят подождите" и блокировать выполнение скрипта другим пользователем? Как программно узнать что кто то открыл данный лист? На скрине лист "Общая Клиенты"

Вот пример кода
function onOpen(){
var u1 = SpreadsheetApp.getUi();
u1.createMenu("-МЕНЮ-")
.addItem("Из Общей Клиенты в Пользователь1", "toSheetUser1")
.addItem("Из Общей Клиенты в Пользователь2", "toSheetUser2")
.addToUi();
}
function toSheetUser1(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
list = ss.getSheetByName('Общая Клиенты');
var lrlist = list.getLastRow();
listUser = ss.getSheetByName('Пользователь 1');
for ( i=2; i<=lrlist; i++){// перенос данных
var lrlistUser = listUser.getLastRow();
var fl = list.getRange(i, 1).getValue();
if(fl == true){
var name = list.getRange('B'+ i).getValue();
listUser.getRange('A'+ (lrlistUser+1)).setValue(name);
var phone = list.getRange('D'+ i).getValue();
listUser.getRange('B'+ (lrlistUser+1)).setValue(phone);
}}
for ( i=2; i<=lrlist; i++){// удаление отмеченных строк
var fl = list.getRange(i, 1).getValue();
if(fl == true){list.deleteRow(i); }
}
}
function toSheetUser2(){
// тот же код что и в toSheetUser1() только данные
// записываются в 'Пользователь 2'
}