无法开启onOpen以触发Google Apps脚本

我对脚本有点新手,所以非常感谢能够提供我的问题洞察力的人 . 由于某些原因,我无法获取下面的Google脚本来触发我的Google Apps电子表格的onOpen .

我的电子表格中的工作表从1月到12月从左到右 . 该脚本用于标识当前月份编号,然后使用该编号标识并设置打开电子表格时该月份的活动工作表 . 我从另一个帖子中逐字逐句地提到:Google Apps Spreadsheet open specific sheet based on current date (Month)

我只是创建一个新的电子表格,从“工具”下拉列表中选择“脚本编辑器”,然后粘贴到下面的脚本中并保存 .

/**
 * Selects a monthly sheet
 */
function onOpen() {
  var month = (new Date()).getMonth();

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[month];
  ss.setActiveSheet(sheet);
};

尝试过将其命名为onOpen,并在重命名后向函数添加onOpen触发器 . 我可以在打开电子表格时触发其他onOpen事件,但遗憾的是,只有当我从脚本编辑器手动触发它时,这个才有效 .

干杯 .

回答(1)

2 years ago

不幸的是规格改变了 . 在新的电子表格中,如果从onOpen或onEdit触发器调用它们,则与activate相关的方法不再有任何效果 .

您可以在下面获得有关更改的更多详细信

Google Apps脚本

问题3928:2014年4月22日,新电子表格:activate()不会将活动工作表更改为onOpen服务功能事件https://code.google.com/p/google-apps-script-issues/issues/detail?id=3928

发行说明2014年4月17日,Document方法setSelection Sheet方法激活,如果从onOpen或onEdit触发器调用它们,则Spreadsheet方法setActiveRange和setActiveSelection不再有任何效果 . https://developers.google.com/apps-script/releases/#april_2014

bakcy0175