Макрос для вывода списка активных пользователей
Извините, я новичок в Google Таблицах, но с достаточным опытом работы с vba.
Я пытаюсь создать активный список активных пользователей на скрытом листе, который затем можно было бы использовать, чтобы выделить существование этих пользователей с помощью условного формата и vlookup.
Может ли это работать в Таблицах?
Пока у меня есть приведенный ниже код, но это первые дни, и кажется, что здесь указан только один пользователь, активировавший код, а не все. Думаю, я понимаю, почему это так, но мне действительно трудно найти ресурсы, которые могли бы мне помочь (опять же - в Таблицах впервые).
function GetUserNames() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sht = ss.getSheetByName("ActiveUsers");
// Log the email address of the person running the script.
var email = Session.getActiveUser().getEmail();
Logger.log(email);
//SET CELL A1 TO EMAIL ADDRESS OF ACTIVE USERS
sht.getRange(1,1).setValue(email);
}
Я планирую запустить это с помощью электронной таблицы From - On open trigger. Это предпочтительный вариант для таких вещей? Я еще не начал изучать аспект скрытого листа, но предполагаю, что он будет работать нормально, даже если моему сценарию придется каждый раз скрывать / повторно скрывать его?
1 ответ
Следует иметь в виду, что Session.getActiveUser.getEmail()
работает только при определенных условиях, т. е. пользователи вашей таблицы должны принадлежать к тому же домену G Suite, что и владелец таблицы.
Также следует иметь в виду, что существует два типа триггеров: простые и устанавливаемые; У простых триггеров есть несколько ограничений, и устанавливаемые триггеры выполняются с использованием учетных данных пользователя, создавшего триггер.
Использование триггеров при открытии для раскрытия / повторного скрытия листов, строк или столбцов обычно является плохой идеей, потому что влияет на всех пользователей, поэтому вы и пользователи электронных таблиц должны знать об этом, но ИМХО, даже зная, что это может быть разрушительным.
связанные с