我可以使用Apps脚本向Google表单回复添加公式吗?

问题描述 投票:2回答:1

道歉,因为我是编码的初学者。我有兴趣使用Google Apps脚本自动分析Google表单回复。

我有simple example用于表格的回复电子表格,询问人们:

1)有多少名球员? 2)他们完成了[第1,第2等]

在提交表单时,我想运行一个脚本来计算他们收到的点数,并将这个值插入下一个可用列(本例中的E列)。

我已经尝试编写我的第一个Apps脚本来自动执行此过程,但没有成功。

示例代码:

function onFormSubmit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Form Responses Master");
var players = e.values[2];
var place = e.values[3];
var positionPoints = e.values[4];
var positionPoints = (players - place + 1);

return positionPoints;
}

我知道通过创建重复页面可以获得解决方法,但我希望有人能够就如何在App脚本中编写解决方案提供建议,希望我可以更好地理解编码过程。

google-apps-script google-sheets google-form
1个回答
0
投票

您可以在响应收集器电子表格中编写应用程序脚本,而不是在表单脚本编辑器中编写代码。

因此,请转到您的回复表并粘贴此代码。

function myFunction() 
{
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses Master");
  var rowNo = sheet.getLastRow();
  var colNo = sheet.getLastColumn();
  sheet.getRange(rowNo, colNo).setValue("=(C"+rowNo+"-D"+rowNo+")+1");
}

现在,转到Resources - > Current project triggers。单击add new并在下拉列表中设置这些值:myFunction - From Spreadsheet - On form submit。

你完成了。每当提交新的回复时,将自动计算位置点。

在这里,可变工作表可以获取您可以执行的不同工作表操作的活动电子表格。

如在代码中看到的rowNo和colNo,只需分别读取写入内容的电子表格的最后一行/列的值。

并且,要在“E”列中设置公式,您可以使用setValue。因此,"=(C"+rowNo+"-D"+rowNo+")+1"将在第二行的情况下转换为(C2-D2)+1,依此类推以用于下一行。

getRange只是用于告诉脚本在特定单元格内写入公式。

© www.soinside.com 2019 - 2024. All rights reserved.