Сценарий Google Apps, как создать сценарий объекта события, который активируется при изменении имени листа? - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь создать сценарий типа onEdit, который соединяет два листа, так что если имя одного из листов изменяется, другой также изменяется. Моя идея до сих пор заключалась в том, чтобы, возможно, использовать «oldValue» по сравнению со «value» в операции if else, но я не могу найти способ заставить его работать.

Если это невозможно, то это нормально, но если это возможно, я был бы очень признателен.

Заранее спасибо.

:)

1 Ответ

0 голосов
/ 16 марта 2019

Вот простая функция onChange, которая будет получать имя старого листа и имя нового листа, когда имя листа будет изменено пользователем.

Первая функция, настроенная для PropertiesService . Он должен быть запущен только для создания свойства 'oshts'.

function setupPropertyoshts() {
  PropertiesService.getDocumentProperties().setProperty('oshts', SpreadsheetApp.getActive().getSheets().map(function(sheet){return sheet.getName()}).join(','));
  Logger.log(PropertiesService.getDocumentProperties().getProperty('oshts'));
}

Это функция, которую вы присоединяете к устанавливаемому триггеру onChange . Я оставил все файлы Logger.logs и тосты, которые я использовал для отладки в сценарии.

function sheetNameChange(e) {
  var cshts=e.source.getSheets().map(function(sheet){return sheet.getName()});
  var oshts=PropertiesService.getDocumentProperties().getProperty('oshts').split(',');
  Logger.log('cshts: %s oshts: %s',cshts,oshts);
  var oldName=oshts[cshts.indexOf(e.source.getActiveSheet().getName())];
  Logger.log('oldName; %s newName: %s',oldName,e.source.getActiveSheet().getName());
  e.source.toast(Utilities.formatString('The old name was %s. The new name is %s.',oldName,e.source.getActiveSheet().getName()));
  PropertiesService.getDocumentProperties().setProperty('oshts',cshts.join(','));
}

Другие ссылки

  1. Объект события onChange
  2. Справочник по классам SpreadsheetApp
  3. Ссылка JavaScript Array.map
  4. Управление триггерами вручную
  5. Программное управление триггерами
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...