Как узнать, кто внёс изменения в таблицу?

Как создать скрипт для Google Sheets, который автоматически записывает имя пользователя, внесшего изменения в книгу, на определенном листе и в определенной ячейке? Требуется функционал, который будет идентифицировать пользователя, независимо от его роли в книге (например, владельцы, редакторы или только читатели), чтобы отслеживать авторство изменений. Любая помощь приветствуется, так как уже испробованы различные способы настройки доступа без успеха.
  • 1 мая 2024 г. 7:40
Ответы на вопрос 2
Для решения данной задачи в Google Sheets можно воспользоваться функцией onEdit(e). Ниже приведен пример скрипта, который будет записывать имя пользователя, внесшего изменения, в определенной ячейке на определенном листе:

```javascript
function onEdit(e) {
  var sheetName = "Sheet1"; // Название листа, на котором нужно отслеживать изменения
  var cellAddress = "A1"; // Адрес ячейки, куда нужно записывать имя пользователя
  
  var sheet = e.source.getSheetByName(sheetName);
  
  if (sheet.getName() == sheetName) {
    var user = Session.getActiveUser().getEmail();
    var range = sheet.getRange(cellAddress);
    range.setValue(user);
  }
}
```

Чтобы добавить этот скрипт в свою книгу Google Sheets, выполните следующие шаги:

1. Откройте свою книгу Google Sheets.
2. Нажмите на "Extensions" в верхнем меню, затем выберите "Apps Script".
3. В открывшемся окне скриптов напишите или вставьте предложенный выше скрипт.
4. Нажмите на кнопку "Save" или "Ctrl + S" для сохранения скрипта.
5. Закройте окно скриптов и вернитесь в свою книгу.

Теперь каждый раз, когда кто-то внесет изменения на листе "Sheet1", имя пользователя будет автоматически записываться в ячейку "A1". Пожалуйста, учтите, что этот скрипт будет работать только для изменений, внесенных после его добавления в книгу.
Никак. Это небезопасно. <br/> <br/> Вы можете идентифицировать пользователя только будучи администратором домена, которому принадлежит файл. <br/> <br/> Вы можете назначать метки пользователям, добавляя какой-то уникальный идентификатор. Далее по этому идентификатору вы можете отслеживать пользователя через триггер, и, возможно, сможете узнать имя этого пользователя, если он сам признается. <br/> <br/> <i>Считаю подход нечестным, поэтому раскрывать реализацию не буду.</i>
Похожие вопросы