2015-11-05 48 views
0

我有一個Google表格存儲我的表單的答案,理論上應該通過從標籤爲「Location of Change」的表單中的下拉列表中選擇的值存儲響應, 。到目前爲止,該腳本可以準確地從每個響應中創建一個新工作表,並將該響應信息的一行添加到新創建的工作表中,但它會爲每個響應創建一個新工作表,而不是添加包含從「Location of Change 「到同一張表。表單響應創建新的Google表格標籤然後Bucketing

我認爲這是因爲destSheet變量找到「變更位置」的值和getSheet()函數之間的斷開,但我可能是錯的。

這裏是我的代碼:

function onSubmit(e) { 

    //Open Marketing - Discoveries and Changes - v1 
    var sheet = e.range.getSheet(); 


    //Return Spreadsheet that contains this sheet 
    var ss = sheet.getParent(); 

    //Open Marketing - Discoveries and Changes - v1 
    var form = FormApp.openByUrl(ss.getFormUrl()); 



    //Destination sheet based on "Location of Change" 
    var destSheet = getSheet(ss, e.namedValues["Location of Change"]); 

    //Store response in destination sheet 
    destSheet.appendRow(e.values); 

    function getSheet(spreadsheet, sheetName, headings) { 
    spreadsheet = SpreadsheetApp.getActive(); 
    var sheet = spreadsheet.getSheetByName(sheetName); 
    if (sheet == null) { 
     sheet = spreadsheet.insertSheet(sheetName); 
     if (headings && headings.constructor === Array) { 
     sheet.getRange(1,1,1, headings.length).setValues([headings]); 
     } 
    } 
    return sheet; 
    } 


} 

回答

0

我認爲這個問題是e.namedValues商店即使只有一個值的所有值作爲數組。所以e.namedValues["Location of Change"]應該

e.namedValues["Location of Change"][0]

+0

這工作!謝謝! – cphill

相關問題