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

时间:2017-01-09 00:44:22

标签: google-apps-script google-sheets google-form

道歉,因为我是编码的初学者。我有兴趣使用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脚本中编写解决方案提供建议,希望我能更好地理解编码过程。< / p>

1 个答案:

答案 0 :(得分: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");
}

现在,转到参考资料 - &gt;当前项目触发。单击add new并在下拉列表中设置这些值:myFunction - From Spreadsheet - On form submit。

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

下面, 变量表可以获取您可以执行的不同表单操作的活动电子表格。

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

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

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