Да, существуют способы автоматического обновления значений функции getSheetName в ячейках при изменении порядкового номера листа. Вот несколько вариантов реализации:
1. Использование событий. Вы можете добавить событие onEdit() в скрипт, которое будет вызываться при редактировании ячейки. Внутри этого события вы можете проверить, изменен ли порядковый номер листа, и обновить значения функции getSheetName для соответствующих ячеек. Пример:
```javascript
function onEdit(event) {
var sheet = event.source.getActiveSheet();
var range = event.range;
if (sheet.getName() == "Sheet1" && range.getColumn() == 1 && range.getRow() == 1) {
// Обновление значений функции getSheetName для ячеек A2 и A3
sheet.getRange("A2").setValue("=getSheetName()");
sheet.getRange("A3").setValue("=getSheetName()");
}
}
```
2. Использование пользовательских функций. Вы можете создать пользовательскую функцию в скрипте, которая будет автоматически обновляться при изменении порядкового номера листа. Для этого в функции getSheetName вы можете использовать метод SpreadsheetApp.getActiveSpreadsheet() для получения активной книги, и метод getActiveSheet() для получения активного листа. Пример:
```javascript
function getSheetName() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
return sheet.getName();
}
```
При изменении порядкового номера листа или редактировании ячеек, содержащих данную пользовательскую функцию, она будет автоматически пересчитываться.
Оба варианта требуют активации скрипта в Google Sheets и настройки соответствующих разрешений для работы с книгой.