首页 > 解决方案 > 关于简单代码的表单提交触发器,但有两个表单链接到 Google 表格电子表格

问题描述

问题:

每次将新条目添加到我的 Google 表格“销售表格回复”页面时,我都需要一个简单的操作。当我知道需要时手动运行它的代码运行良好,只需在“销售数据清理”表中添加一个新行,并复制前一行中的所有公式。这是必要的,因为它将一些信息字段添加到表单条目中。

function addRow() {
  var ss = SpreadsheetApp.getActive();
  var sh = ss.getSheetByName('Sales Data Clean'), lRow = sh.getLastRow(); 
  var lCol = sh.getLastColumn(), range = sh.getRange(lRow,1,1,lCol);
  sh.insertRowsAfter(lRow, 1);
  range.copyTo(sh.getRange(lRow+1, 1, 1, lCol), {contentsOnly:false});
}

我正在尝试使用触发器让 Google 表格在提交新表单条目时运行此功能。

问题:

我有两个表单链接到整个 Google 表格文档。受影响的另一张表称为“Stock Form Responses”,触发器不允许指定 AddRow 函数仅应在销售表单有新条目时运行。我该怎么做呢?非常感谢帮助。

标签: google-apps-scriptgoogle-sheetsgoogle-forms

解决方案


function addRow(e) {
  const ash = e.range.getSheet(); 
  if{ash.getName()=='Sales Form Responses'){
    //Put your code in here
  }
}

尽管@Nazia 说最好的答案是将代码附加到电子表格并使用 e.values 或 e.namedValues 而不是 getLastRow() 因为如果您快速连续提交多个提交,最后一行可能是错误的。


推荐阅读