2015-02-09 68 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