Установив функцию в качестве триггера OnChange, функция может быть запущена, когда происходит разворачивание и свертывание.В это время changeType
объекта события равно OTHER
.
Ссылка:
Редактировать:
К сожалению, объект события OnChange не содержит подробной информации, когда событие OnChange было инициировано.В качестве обходного пути, как насчет использования PropertiesService?В этом обходном пути он получает статус с помощью PropertiesService.
В качестве примера ситуации он предполагает следующее.
- Строка 3-5 - это группа A
- Строка 8-10 - это группа B
- Строка 13-15 - это группа C
. Для описанной выше ситуации используется следующий сценарий.
Пример сценария:
function onChange(e) {
var sheet = e.source.getActiveSheet(); // or you can also use SpreadsheetApp.getActiveSheet();
if (sheet.getSheetName() === "Sheet1") { // If you want to control the sheet. Please put the sheet name here.
var p = PropertiesService.getScriptProperties();
var s = p.getProperties();
var groupA = sheet.getRowGroup(3, 1);
var groupB = sheet.getRowGroup(8, 1);
var groupC = sheet.getRowGroup(13, 1);
var gA = groupA.isCollapsed().toString() === s.groupA;
var gB = groupB.isCollapsed().toString() === s.groupB;
var gC = groupC.isCollapsed().toString() === s.groupC;
if (gA && gB && gC) {
return;
} else if (!gA && gB && gC && !groupA.isCollapsed()) {
groupB.collapse();
groupC.collapse();
} else if (gA && !gB && gC && !groupB.isCollapsed()) {
groupA.collapse();
groupC.collapse();
} else if (gA && gB && !gC && !groupC.isCollapsed()) {
groupA.collapse();
groupB.collapse();
}
var currentStatus = {groupA: groupA.isCollapsed(), groupB: groupB.isCollapsed(), groupC: groupC.isCollapsed()};
p.setProperties(currentStatus);
}
return;
}
Примечание:
- Когда вы используете это, пожалуйста, скопируйте и вставьте этот скрипт и установите
onChange()
в качестве триггера OnCange. - Пожалуйста, установите имя вашего листа на
"Sheet1"
из if (sheet.getSheetName() === "Sheet1") {
. - Этот скрипт работает следующим образом.
- Когда группа А развернута, группа В и группа С свернуты.
- Когда группа В развернута, группа А и группа С свернуты.
- Когда группа С развернута, группа А и группа В свернуты.
- Когда все группы свернуты, этому сценарию нечего делать.
- Если выполняется быстрая операция развертывания и свертывания, может возникнуть ошибка ответа.
Ссылки: