Expand/Collapse 受保护工作表中的列

Expand/Collapse Columns in Protected Sheets

我正在尝试在 google sheet 中创建展开和折叠按钮,因为 google 不允许在受保护的 sheet 中使用该功能。

在受保护的 sheet 中,我有这个崩溃功能:

function Collapse() {
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
 var range = sheet.getRange('D1:M1');
  sheet.setColumnGroupControlPosition(SpreadsheetApp.GroupControlTogglePosition.BEFORE);
 var user = Session.getActiveUser();
  sheet.protect().addEditor(user)
 var group = sheet.getColumnGroup(4, 1);
  group.collapse();
}

它仍然不允许其他人 expand/collapse 列。

我可以做些什么来允许用户访问此功能?

最好的方法是使用复选框和已安装的 onEdit() 触发器,以允许任何有权显示/隐藏范围的人。

 function Collapse(e) {

  var sheet = e.source.getActiveSheet();
  var sheetName = sheet.getSheetName();
  var range = e.range.getA1Notation();

  if(range == "A1" && sheetName == "Sheet1"){

  var value = sheet.getRange(range).getValue();   

    if(value){
      sheet.hideColumns(2, 4);
      sheet.hideRows(2,4);
    } else if (!value) {      
      sheet.showColumns(2, 4);
      sheet.showRows(2,4);
    }
  }
}

Sample show / hide sheet