首页 > 解决方案 > 谷歌脚本:没有活动工作表时的 getActiveSheet()?

问题描述

我已经为此工作了几天,但我找不到这个问题的任何答案。 我没有程序员背景,所以对你们中的一些人来说这可能是一个简单的问题。

问题: 我有 5 个 Google 表单,它们在 1 个主 Google 工作表中填写 5 个不同的工作表。

-->填写Google Form 1时, sheet1 有新行
-->填写Google Form 2时, sheet2 有新行
-->填写Google Form 3时,有新行sheet3
-->填写Google Form 4时,sheet4换
行 -->填写Google Form 5时,sheet5换行

现在,当向每张纸添加新行时,我需要能够运行一些脚本(不同的脚本)。

这个想法是:

--> 当向 sheet1 添加新行时,执行此操作。
--> 当向 sheet2 添加新行时,执行此操作。.
.
.

我尝试了这样的事情(见下文)。但它不会返回任何内容,因为当填写谷歌表单并自己向谷歌表单添加新行时没有“Activesheet”。

function onChange(event) {
  
  var s = event.source.getActiveSheet(); 
  var sName = s.getName();
 
  
  Browser.msgBox(sName);

}   

问题:

换句话说,您是否知道如何获取由 google 表单编辑的工作表,以便在每张工作表被修改时运行特定脚本?

标签: google-sheetsgoogle-sheets-api

解决方案


onChange表单提交时触发器不会触发,请改用FormSubmit触发器

相关的事件对象在此处指定。

事件对象source不可用,但您可以将事件对象rangegetSheet()结合使用。

样本:

function onChange(event) {
 
  var s = event.range.getSheet();
  var sName = s.getName();  
  Browser.msgBox(sName);

} 

推荐阅读