首页 > 解决方案 > Google Script Trigger Collapse Group 问题

问题描述

我有时间触发器的问题。我希望工作表中的组每 30 分钟折叠一次。我记录宏并在脚本编辑器中设置触发器。

这是我的代码:

function zwin() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A:H').activate();
  spreadsheet.getActiveSheet().getColumnGroup(9, 1).collapse();
};

我设置了时间触发器(每 1 分钟检查一次是否有效),并不断遇到这个问题:

例外:不存在索引为 9 且组深度为 1 的列组

如您所见,组索引是正确的:https ://i.stack.imgur.com/VS9kG.png

但是当我尝试手动运行脚本时,它可以完美运行。它折叠了我创建的组。我在每张包含我创建的组的工作表中不断遇到这个问题,唯一的区别是组索引(我在代码中更改了添加到它的位置)。

我试图删除该组并再次创建它,更改代码中的范围 - 没有任何效果。

我做错了什么以及如何使它起作用?

[编辑] 我所要做的就是手动定义我想要触发脚本的电子表格。添加代码:

 function zwin() {
  var spreadsheet = SpreadsheetApp.openById("myspreadsheetid");
  spreadsheet.getSheetByName("thesheetname").getColumnGroup(9, 1).collapse();
};

但我收到这条消息是因为我只是拼错了 id:

获取对象 SpreadsheetApp 上的方法或属性 openById 时出现意外错误

确保您没有拼错可以在此处找到的 id:

id 是https://docs.google.com/spreadsheets/d/XXX/edit#gid=0中的 xxx 部分

openByUrl 也可以:

function zwin() {
      var spreadsheet = SpreadsheetApp.openByUrl("myspreadsheeturl");
      spreadsheet.getSheetByName("thesheetname").getColumnGroup(9, 1).collapse();
    };

它有效!

标签: google-apps-script

解决方案


在基于时间的触发器上运行函数时,没有活动的电子表格

样本:

function zwin() {
  var spreadsheet = SpreadsheetApp.openById("YOUR-SHEET-ID");
  spreadsheet.getSheetByName("NAME_OF_THE_SHEET").getColumnGroup(9, 1).collapse();
};

推荐阅读