Я работаю над таблицей с таблицей, в которой указаны имена работников и их наличие в течение всего года. Моя цель - выделить ячейку с соответствующим именем, когда конкретный человек открывает лист. Все пользователи имеют свою почту Google в схеме first_name.last_name@gmail.com.
Я уже создал некоторый код, который находит имя и выполняет смелые действия для имени активного пользователя, вы можете увидеть его ниже:
function onOpen(e)
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
for(var k = 0; k<sheets.length; k++)
{
var data = sheets[k].getDataRange().getValues();
var user = Session.getActiveUser().getEmail();
var splitname = user.split("@")[0];
var first = splitname.split(".")[0];
var last = splitname.split(".")[1];
var formatted_first = first.charAt(0).toUpperCase() + first.slice(1);
var formatted_last = last.charAt(0).toUpperCase() + last.slice(1);
var name = formatted_first + " " + formatted_last;
for(var i = 0; i<data.length;i++)
{
if(data[i][0] == name)
{
var a = i+1;
}
}
sheets[k].getRange(a,1).setFontWeight("bold");
}
}
Проблема в том, что:
- Я не знаю, как выполнить действие временно, только для времени, когда листы открыты.
- После написания кода я понял, что смелое действие будет видно для всех активных пользователей, поэтому, если один пользователь откроет лист, когда другой уже открыл его и еще не закрыл, он увидит не только выделенное имя, но и другое имя пользователя
Итак, у меня вопрос: есть ли возможность сделать изменения видимыми только для пользователя, который их сделал, и как выполнять выделение только при открытом листе.
Если вам известна какая-либо функция Google, которая делает это возможным без использования макроса, это будет лучшим решением. Может быть, мое исследование не было достаточно хорошим.
Заранее спасибо за помощь!