2016-03-29 14 views
0

刪除Google表單響應中的重複項我試圖使用以下代碼基於列刪除較早的重複表單響應。腳本不會在FormSubmit上觸發:根據列

的代碼歸功於:http://www.jacorre.com/tutorial/remove-duplicate-rows-google-spreadsheets/

的代碼在我的腳本是:

function removeDuplicates() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(), 
    responses = ss.getSheetByName('Name of Source Sheet'), 
    range = responses.getDataRange(), 
    numRows = range.getNumRows()-1, 
    data = range.getValues(), 
    columnHeadings = [data[0]], 
    newData = []; 
for (var i=numRows; i>0; i--) { 
    var row = data[i], 
     duplicate = false; 
    for (var j in newData) { 
    if (row[4] == newData[j][4]) { 
    duplicate = true; 
// [4] is the column number from the 1st column. the above would be 1 + 4 = 5th column 
    } 
    } 
    if (!duplicate) { 
    newData.push(row); 
    } 
} 
var final = ss.getSheetByName('Name of Destination Sheet'); 
if (!final) { 
    var final = ss.insertSheet('Name of Destination Sheet'); 
} 
final.clearContents(); 
final.getRange(1,1,1,columnHeadings[0].length).setFontWeight('bold').setValues(columnHeadings); 
final.getRange(2, 1, newData.length, newData[0].length).setValues(newData); 
} 

這已被設置爲觸發表單提交。它適用於新的表單提交。

但是,如果使用來自https://webapps.stackexchange.com/questions/89551/show-url-used-to-edit-responses-from-a-google-form-in-a-google-spreadsheet-by-us/89566的「表單編輯URL」編輯現有響應,則值不會更新到新工作表中。

但是,如果手動運行該功能,更新的行將更新爲新工作表。

我該如何分類這個問題?任何幫助將不勝感激。謝謝。

+0

對此問題予以crossposted爲[webapps.se] - > http://webapps.stackexchange.com/questions/91105/problem-script-does-not-trigger-on-formsubmit-removing-duplicates-in-google-sh(此時它沒有任何答案) –

回答

0

my own answer張貼在Web Applications SE。

我剛做了一個測試,發現在編輯響應時觸發的表單提交事件不是 。

我不確定表單提交觸發器是否按預期工作,如果 以上是由於錯誤或故障造成的。可以肯定的是,發佈到 Google Apps Script Issue Tracker

作爲解決方法,您可以使用另一種方式來運行腳本,如時間驅動器觸發器,而不是使用表單提交事件,而是使用 。

參考
相關問題