#google-apps-script #google-sheets
#google-apps-script #google-sheets
Вопрос:
У меня есть рабочий скрипт для электронной таблицы, который выдает подсказки и предупреждения при редактировании определенных диапазонов, но когда на листе одновременно находятся несколько пользователей, это отображается для каждого, независимо от того, кто внес изменения.
Есть ли способ, которым каждое сообщение отображается только пользователю, который его отредактировал или даже запустил?
А если нет, то способ узнать, у скольких пользователей открыт лист, чтобы отключить это, когда их больше одного?
Триггер находится в учетной записи администратора (владельца), и лист защищен, поэтому только определенные ячейки доступны для редактирования обычными пользователями, и сценарий завершает эти ячейки. Просто упомянуть, что наличие триггеров в учетных записях пользователей не сработает, поскольку у них нет разрешения на редактирование всего, иначе это приведет к потере цели.
Комментарии:
1. Не могли бы вы поделиться примером поведения, которое вы видите. Фрагмент воспроизводимого кода? или копию листа? Трудно понять, что-то не так из того, что вы только что рассказали.
Ответ №1:
Что-то вроде этого должно сработать
function onEdit(e){
var userMakingTheEdit = e.user;
var UserLoggedON = Session.getActiveUser().getEmail()
if (userMakingTheEdit == UserLoggedON)
{
// Show alert
}
}
Ответ №2:
Извините, моя ошибка.
В цикле была ошибка, из-за которой у меня возникли проблемы с поиском, теперь это исправлено, и оно работает так, как должно.
Использование onEdit(e) корректно работает только при запуске кода с подсказками и предупреждениями для этих отдельных пользователей.
В любом случае спасибо за ответ, последний был действительно полезен в чем-то другом, я ценю это.