Я написал скрипт в Google Sheets, чтобы вернуть имя данного листа (см. Ниже).
Функция записывается в итоговый лист, где входными данными является индекс требуемого листа. У меня есть все функции, предварительно написанные, например.
A1 = GetSheet(1) B1 = GetSheet(2) C1 = GetSheet(3) и т.д.
Очевидно, что когда лист с рассматриваемым индексом еще не существует, я получаю сообщение об ошибке. Однако, когда я создаю этот лист, ячейка не обновляется автоматически именем нового листа, она все равно возвращает ошибку. Чтобы имя появилось, мне нужно удалить функцию и повторно вставить ее.
Есть ли способ автоматического обновления ячеек при добавлении нового листа без повторного ввода функции?
Извините, если я упустил что-то очевидное, я очень новичок в этом!
function GetSheet(input)
{
var spread = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = SpreadsheetApp.getActiveSheet();
var sourceIndex = sourceSheet.getIndex();
var nextIndex = sourceIndex + 1;
var ss = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(ss.getSheets()[input]);
var active = ss.getActiveSheet();
var name = active.getName();
return name
}
change
(developers.google. com/apps-script/guides/triggers/events#change), чтобы зафиксировать изменения и запустить скрипт для обновления. Кроме того, почему бы сначала не получить названия всех таблиц, а затем вставить их в сводную таблицу с помощьюrange.setValues()
(developers.google.com/apps-script/reference/spreadsheet/) - person Dean Ransevycz   schedule 14.11.2017change
. Проблема с поиском имен листов в первую очередь заключается в том, что я не узнаю, что это такое, пока они не будут созданы! - person Owen Midha   schedule 15.11.2017