[英]clearContent does not run onChange in Google Sheets script
当指定的单元格(C1)
发生变化时,我编写了一个脚本来清除一系列单元格(B4:B8)
。 但是,编辑指定的单元格时,单元格不会被清除。 这是脚本:
function onChange() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Quality Control').getRange('C1');
ScriptApp.newTrigger("clearRange")
.forSpreadsheet(sheet)
.onChange()
.create();
}
function clearRange() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Quality Control');
sheet.getRange('B4:B8').clearContent();
}
函数onChange
设置为onOpen
(触发器)。
知道为什么这个脚本不起作用?
而不是通过代码创建触发器而不是手动创建它。 设置触发器直接调用clearRange()。
问题中的脚本无法正常工作,因为存在错误,但修复错误可能更好地手动设置触发器,否则每次打开电子表格时都会创建新的触发器。
要手动创建触发器,请按照https://developers.google.com/apps-script/guides/triggers/installable#managing_triggers_manually中的说明操作
手动管理触发器
要通过脚本编辑器中的对话框手动创建可安装触发器,请按照下列步骤操作:
- 从脚本编辑器中,选择Resources> Current project的触发器。
- 单击以下链接:未设置触发器。 点击这里,马上添加一个。
- 在“运行”下,选择要触发的功能名称。
- 在“事件”下,选择“时间驱动”或脚本绑定的Google App(例如,“从电子表格”)。
- 选择并配置要创建的触发器类型(例如,每小时运行的小时计时器或打开的触发器)。
- (可选)单击“通知”以配置触发功能失败时通过电子邮件联系的方式和时间。
- 单击保存。
.forSpreadsheet(sheet)
要求该sheet
是电子表格对象,但您的代码会为sheet
变量分配范围。
来自https://developers.google.com/apps-script/reference/script/spreadsheet-trigger-builder#onchange
var sheet = SpreadsheetApp.getActive();
ScriptApp.newTrigger("myFunction")
.forSpreadsheet(sheet)
.onChange()
.create();
请参阅https://developers.google.com/apps-script/troubleshooting ,了解如何在Google Apps脚本编辑器上使用调试工具
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.