繁体   English   中英

clearContent不会在Google表格脚本中运行onChange

[英]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中的说明操作

手动管理触发器

要通过脚本编辑器中的对话框手动创建可安装触发器,请按照下列步骤操作:

  1. 从脚本编辑器中,选择Resources> Current project的触发器。
  2. 单击以下链接:未设置触发器。 点击这里,马上添加一个。
  3. 在“运行”下,选择要触发的功能名称。
  4. 在“事件”下,选择“时间驱动”或脚本绑定的Google App(例如,“从电子表格”)。
  5. 选择并配置要创建的触发器类型(例如,每小时运行的小时计时器或打开的触发器)。
  6. (可选)单击“通知”以配置触发功能失败时通过电子邮件联系的方式和时间。
  7. 单击保存。

关于问题代码的评论

.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM