2016-08-14 47 views
0

我是一名小學教師在有限的編碼經驗,但我喜歡嘗試搞清楚這些事情,如果它簡化了我的生活。 :)谷歌腳本給力新電子表格條目在第2行開始運行腳本後清除範圍

我創建了一個谷歌形式爲我的學生,使他們每日的午餐選擇。

我設立有觸發清除午夜到凌晨1點,每天晚上的形式的腳本,它看起來像這樣:

function clearRange() { 
//replace 'Sheet1' with your actual sheet name 
var sheet = SpreadsheetApp.getActive().getSheetByName('Lunch'); 
sheet.getRange('A2:G25').clearContent();} 

腳本本身的工作 - 但是,現在,每當新條目被添加,它們被添加到舊條目被清除的正下方的電子表格行中。因此,如果我有20名學生響應週一,電子表格有行2-21填寫,這得到清除某個隔夜週一/週二上午,第二天,響應補行22-42,等等,等等

如何在我的電子表格的第2行上編輯或添加某些內容到我的腳本中,以強制它在清除舊的內容後放入所有新條目?

如果這個問題已經回答,請點我在那個方向爲好。

謝謝!

+0

您可以向我們展示使用AppScript在表格上書寫的代碼嗎? – noogui

回答

0

而不是清除單元格中的內容,您需要刪除包含表單提交的行。

這裏是修改後的代碼,它應該適合你。另外,確保你沒有任何凍結行。

function clearRange() { 
    //replace 'Sheet1' with your actual sheet name 
    var sheet = SpreadsheetApp.getActive().getSheetByName('Lunch'); 

    //get last row, this will be used to count how many rows to delete 
    var lr = sheet.getLastRow(); 

    //delete row from 2 to last row 
    sheet.deleteRows(2, lr-1); 
} 
+0

工作正常!謝謝您的意見! –

0

您使用的是.clearContent()法和谷歌表單跟蹤基於電子表格中的行的答覆,你需要刪除完全使用deleteRows(rowPosition, howMany),像這樣的行:

function clearRange() { 
    //replace 'Sheet1' with your actual sheet name 
    var sheet = SpreadsheetApp.getActive().getSheetByName('Lunch'); 
    sheet.deleteRows(2, 25); 
} 

注意:這不會重新啓動你在谷歌看到櫃檯窗體用戶界面:

enter image description here

爲了做到這一點,您需要使用deleteAllResponses()使用FormApp Class

+0

謝謝,感謝您的幫助! –

相關問題