【问题标题】:Trouble getting onOpen to trigger in Google Apps Script无法在 Google Apps 脚本中触发 onOpen
【发布时间】:2014-06-03 15:59:30
【问题描述】:

我对脚本编写有点陌生,因此非常感谢任何可以提供洞察我的问题的人。出于某种原因,我无法获取下面的 Google 脚本来触发我的 Google Apps 电子表格的 onOpen。​​

我的电子表格中的表格从一月到十二月从左到右。该脚本旨在识别当前月份编号,然后在打开电子表格时使用该编号来识别和设置该月份的活动工作表。我从另一个线程逐字逐句: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 事件,但遗憾的是,只有当我从脚本编辑器手动触发它时,这个事件才有效。

干杯。

【问题讨论】:

  • 这似乎是新版表格的错误。我尝试了旧版本的表格,它可以工作,但是当您打开电子表格时,会生成两张而不是一张。为了让它在旧版本中正常工作,我创建了一个可安装触发器。我打开了一个问题 Apps 脚本团队:The setActiveSheet method does not work in onOpen()
  • 我第二个 onOpen 在旧版本中工作正常,我目前正在使用它。一定是新问题。
  • 好的,那我不会发疯的。感谢您的更新。我一定会跟踪您的问题@wchiquito,看看是否有任何问题,或者如果我能找到任何问题,请发布解决方法。

标签: google-apps-script


【解决方案1】:

不幸的是,规格已更改。 在新的电子表格中,如果从 onOpen 或 onEdit 触发器调用与激活相关的方法,它们将不再有任何效果。

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

Google Apps 脚本

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

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

bakcy0175

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多