我用的是谷歌电子表格。我正在尝试创建一个onChange触发器,它将在添加或删除任何工作表时激活脚本。当使用changeType === "INSERT_GRID"添加新的工作表时,我能够让脚本工作。但是,当我使用changeType === "REMOVE_GRID"时,当删除工作表时,脚本不会激活。也许我误解了REMOVE_GRID做什么?
下面是我试图实现的一个简化版本:
function deleteSheet(e) {
if (e.changeType === "REMOVE_GRID") {
e.source.getSheetByName("Sheet1").getRange(1, 1).setValue("Deleted a sheet");
}
}我确实将触发器更改为:deleteSheet --> spreadsheet --> onChange
任何帮助都将不胜感激!这也是我第一次发帖,所以我对任何格式化错误都表示歉意。谢谢!
发布于 2018-06-29 18:12:48
通过添加以下内容,您可以检查哪些类型的事件被传递到该触发器中:
Browser.msgBox(Utilities.jsonStringify(e))
在最上面。这也将确认该函数正在被触发。
发布于 2018-06-30 23:17:18
使用e.source.getSheetByName("Sheet1")代替e.source.getSheets()[i],i是对应于Sheet1的索引号
我使用SpreadsheetApp.getActive()而不是e.source和getSheets()[i]代替getSheetByName("Sheet1")进行了一些测试。getSheetByName抛出错误
床单没找到。
当更改类型为REMOVE_GRID时
它看起来是一个尚未在应用程序脚本问题跟踪器上报告的bug。更新:我在不久前创建了一个bug报告,但它还没有得到其他在更改删除时找不到getSheetByName抛出工作表_网格的支持。
相关特征请求
https://webapps.stackexchange.com/questions/118317
复制相似问题