2015-02-09 67 views
0

对不起,如果此问题已被回答,我没有发现此问题的任何条目。我正在努力为我们的非营利组织建立新闻订阅服务。处理连接到Google表单的电子表格的问题

我正在使用Google表单来收集用户输入。 OnForm提交表单上的脚本是将其他信息写入所连接的电子表格。

问题:我不能叫电子表格:

TypeError: Cannot call method "getActiveSheet" of null.

我是否需要初始化电子表格或我必须创建脚本形式之外?

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet() 
var sheet = spreadsheet.setActiveSheet(spreadsheet.getSheets()[0]); 

是否可以操纵通过表单Google脚本收集表单输入的电子表格?

这是一个设置为运行onFormSubmit的谷歌形式背后的代码:

function onFormSubmit(e) { 
    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet() 
    var sheet = spreadsheet.setActiveSheet(spreadsheet.getSheets()[0]); 
    var row = sheet.getLastRow(); sheet.getRange(row,4).setValue(row); 
} 
+0

你能在这里粘贴你的代码吗? – 2015-02-09 09:55:21

+0

非常感谢您的回复,@ amit-agarwal! 该代码是非常基本的:这是被设置为运行onFormSubmit的谷歌表格后面的代码: 功能onFormSubmit(E){ VAR电子表格= SpreadsheetApp.getActiveSpreadsheet() VAR片= spreadsheet.setActiveSheet(spreadsheet.getSheets ()[0]); var row = sheet.getLastRow(); sheet.getRange(row,4).setValue(row); } 谢谢! – Tobey 2015-02-09 10:27:11

回答

1

您需要将代码粘贴到响应电子表格的脚本编辑器。你可能在Forms中使用它。

+0

非常感谢,这似乎让我更进一步。我正在尝试使用以下代码将editResponseLink插入到电子表格中: 您是否看到我的错误? var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.setActiveSheet(spreadsheet.getSheets()[0]); var row = sheet.getLastRow(); var linkurl = 6; sheet.getRange(row,linkurl).setValue(response.getEditResponseUrl()); 非常感谢! – Tobey 2015-02-09 11:45:32

+0

var response = e.response; var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.setActiveSheet(spreadsheet.getSheets()[0]); var row = sheet.getLastRow(); var linkurl = 6; sheet.getRange(行,linkurl).setValue(response.getEditResponseUrl()); – Tobey 2015-02-09 12:10:59

+0

或者我需要一个不同的解决方案来通过电子表格中的脚本访问response.editResponseUrl()? 感谢和抱歉的混淆。 @amit – Tobey 2015-02-09 12:31:57