我遇到了一個奇怪的問題,導致我相當大的困難,希望有人她可能有一些洞察力。複製谷歌應用程序腳本與表格
我有一個表單接受迴應並將結果發送到工作表。我已經編寫了一個附加的onsubmit腳本,然後標記其他一些表單,以便於跟蹤並提供預填充的url,可以在下次需要提交表單時發送。
這些表格是用於學生數據收集的,我爲此需要三個不同年份收集有關學生的數據。我的問題是,我似乎無法將腳本複製到其他表單,而不會停止工作。
我採取了以下方法:
起初我只是想複製整個表格,然後改變它,這意味着腳本與拷貝來了。
然後我試着保留重複的表格,但刪除了所有的腳本信息,並將腳本複製並粘貼到窗體中的新項目中。
然後,我嘗試創建一個新的測試表單,然後將腳本複製並粘貼到該表單 - 再次沒有成功。
所有嘗試都導致數據成功提交到響應表,但腳本無法以靜默方式觸發或失敗。
我看不到任何腳本我已經產生了這將導致它只能在一個窗體上工作,但我不是很有經驗的JS,它可能是我沒有看到明顯的東西(我知道那裏在腳本中有些愚蠢的地方,但這是我知道的作品)。
如果任何人都可以指出任何會使腳本不能用於任何其他形式的東西,或者可以解釋腳本如何被成功複製,我會非常感激。
代碼:
/* onsubmit function that creates a prefilled url and prints to sheet */
function onSubmit(e) {
var subject = "ICT";
//generate url
var url=e.response.toPrefilledUrl();
var responses = e.response;//e is of type formresponse.
var name = responses.getItemResponses()[0].getResponse();
var sheet1 = SpreadsheetApp.openByUrl("https://docs.google.com/a/rbair.org.uk/spreadsheets/d/1w_rCPJR-O9_fUs1T5HKmaTUsRjk_9JRVRPxV2kJzNMk/edit#gid=0").getSheetByName("Admin");
update(name, subject);
//print to cell in feedback sheet
var data = sheet1.getDataRange().getValues();
for(i=0; i<100; i++)
{
if(data[i][1]==name)
{
sheet1.getRange(i+1, 3).setValue(url);
}
}
}
function test()
{
var name = "Piers Hartley";
var subject = "ICT";
update(name, subject);
}
function update (name, subject)
{
//var name = "Piers Hartley";
//var subject = "ICT";
var msheet = SpreadsheetApp.openByUrl("https://docs.google.com/a/rbair.org.uk/spreadsheets/d/1IauIkNCrE95qNAL2KxfJhespEcRWuMXYGzkkjwFnezg/edit#gid=0");
var refsheet = msheet.getSheetByName("Subject Teachers");
var track = refsheet.getRange(2,10).getValue();
var tsheet = msheet.getSheetByName(track);
var trdr = tsheet.getDataRange();
var trdata = trdr.getValues();
var lcol = trdr.getLastColumn();
var lrow = trdr.getLastRow();
for(i=0; i<lcol; i++)
{
if (trdata [0] [i] == subject)
{
for (j=1; j<lrow; j++)
{
if (trdata [j] [i] == name)
{
tsheet.getRange(i+2, j+1).setValue("Done");
}
}
}
}
}
Derp ...謝謝,我完全錯過了 - 是否可以將它歸咎於16小時的編碼宿醉? – 2014-10-28 23:37:47