我正在嘗試寫一段代碼來同步兩張表單(其背後的動機是here)。我從SOF得到這個代碼以前的回答:當onEdit()被執行時,什麼能阻止這段代碼運行?
var sourceSpreadsheetID = SPREADSHEET.getId();
var sourceWorksheetName = "myData";
var destinationSpreadsheetID = "0AmEr9uNtZwnNdDFKMTVlbmZYZ3ZyOWM0aXpZS2twM1Z";
var destinationWorksheetName = "myData2";
function importData() {
var thisSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetID);
var thisWorksheet = thisSpreadsheet.getSheetByName(sourceWorksheetName);
var thisData = thisWorksheet.getDataRange();
var toSpreadsheet = SpreadsheetApp.openById(destinationSpreadsheetID);
var toWorksheet = toSpreadsheet.getSheetByName(destinationWorksheetName);
var toRange = toWorksheet.getRange(1, 1, thisData.getNumRows(),thisData.getNumColumns());
toRange.setValues(thisData.getValues());
}
function onEdit(){
importData();
}
但是當我打開表單並編輯它時,什麼也沒有發生。爲什麼?
PS - 正如我前面,我已經問過類似的問題。但是我認爲這是另一個問題,因爲我沒有從上一個問題尋找相同的答案(如何使兩張表同步?),而是一個更具體的問題:什麼阻止了此代碼 - 此解決方案 - 工作?
全球'SPREADSHEET'從哪裏來? –
你有一個名爲'onChange()'的函數,但是你沒有提及你是否已經將它安裝爲Spreadsheet Change Trigger。你需要這樣做,否則它不會運行。 – Mogsdad
嗨,@BryanP,全球'SPREADSHEET'在我的代碼中定義。 是的,onChange()假設爲電子表格觸發器。 我也嘗試了onEdit()觸發器,它不起作用。 – craftApprentice