2014-08-28 62 views
0

我想創建一個流程,當人員提交表單時,我只填充信息(並非每個字段都是填充所需的)。發現代碼(http://www.labnol.org/internet/google-docs-email-form/20884/),根據作者做了所有的事情,但不起作用。我不是編碼專家,所以我需要你的幫助。以編程方式創建觸發器時重載的構造函數錯誤

下面是代碼:

function Initialize() { 

    var triggers = ScriptApp.getScriptTriggers(); 

    for(var i in triggers) { 
    ScriptApp.deleteTrigger(triggers[i]); 
    } 

    ScriptApp.newTrigger("SendGoogleForm") 
    .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet()) 
    .onFormSubmit() 
    .create(); 

} 

function SendGoogleForm(e) 
{ 
    try 
    {  
    // You may replace this with another email address 
    var email = "[email protected]"; 

    // Optional but change the following variable 
    // to have a custom subject for Google Form email notifications 
    var subject = "New Driver Application Arrived"; 

    var s = SpreadsheetApp.getActiveSheet(); 
    var columns = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];  
    var message = "";  

    // Only include form fields that are not blank 
    for (var keys in columns) { 
     var key = columns[keys]; 
     if (e.namedValues[key] && (e.namedValues[key] != "")) { 
     message += key + ' :: '+ e.namedValues[key] + "\n\n"; 
     } 
    } 

    // This is the MailApp service of Google Apps Script 
    // that sends the email. You can also use GmailApp for HTML Mail. 

    MailApp.sendEmail(email, subject, message); 

    } catch (e) { 
    Logger.log(e.toString()); 
    } 

} 

這裏是我所得到的,當我運行初始化測試:

Cannot call overloaded constructor forSpreadsheet with parameters 
(null) because there is more than one matching constructor signature: 
interface SpreadsheetTriggerBuilder forSpreadsheet(Spreadsheet) 
interface SpreadsheetTriggerBuilder forSpreadsheet(String) (line 12, 
file "Code") 

回答

1

添加谷歌電子表格所收集的腳本編輯器中的代碼響應,而不是在窗體編輯器中。 [source]

說明:錯誤消息表明forSpreadsheet()的參數爲(null)。你餵它SpreadsheetApp.getActiveSpreadsheet(),所以評估到null。該方法僅適用於Spreadsheet綁定的腳本。

相關問題