Вот простая функция 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(','));
}
Другие ссылки
- Объект события onChange
- Справочник по классам SpreadsheetApp
- Ссылка JavaScript Array.map
- Управление триггерами вручную
- Программное управление триггерами