0

我嘗試創建一個腳本,將Google表單響應表添加到新創建的Google表單,然後在同一電子表格中創建後續表單。這些牀單是在創作時命名的。這裏是我的代碼到目前爲止:以新創建的Google Sheet +表單自動創建表單

var statusSheet, form, ss = SpreadsheetApp.openById("SPREADSHEET_ID") 
if (ss.getFormUrl() == null){ 
form = FormApp.create("NEWFORM") 
    .setCollectEmail(true) 
    .setProgressBar(false) 
    .setRequireLogin(true) 
    .setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId()) 
Utilities.sleep(3000) 
    } 
    else{form = FormApp.openByUrl(ss.getFormUrl())} 
    if (ss.getSheets()[1].getRange("A1").getValue() != 'Status'){ 
ss.getSheets()[1].setName("Status") 
.getRange("A1:C8") 
.setValues([["Status",'',"Staff"],["Staff",'',"Student"],["Students",,"building"],["Penalty Box",'',"scope"],["Current Offenders",'',"formCreated"],["Audit Log",'',"formPopulated"],['','',"TimeTrigger"],["Form ID",'',"EditTrigger"]]) 
Utilities.sleep(3000) 
    } 
    statusSheet = ss.getSheetByName("Status") 
    ss.setActiveSheet(ss.getSheets()[(ss.getSheets().length)-1]) 
while (ss.getSheets().length < 7){ 
var newSheet = ss.insertSheet() 
var range = statusSheet.getRange(newSheet.getIndex(),2, 1, 1) 
range.setValue(newSheet.getSheetId()) 
newSheet.setName(statusSheet.getRange(newSheet.getIndex(),1, 1, 1).getValue()) 
Logger.log(newSheet.getName()) 
} 
    var staffSheet = ss.getSheetByName("Staff") 
    var studentsSheet = ss.getSheetByName("Students") 
    var PenaltyOUSheet = ss.getSheetByName("OrgUnits") 
    var currentBoxUsersSheet = ss.getSheetByName("Current Users") 
    var auditLogSheet = ss.getSheetByName("Audit Log") 

似乎所有的工作表創建,除了「職員」。這種情況下的形式是否創建和/或值被填充或者執行該功能之前或執行過程中。更糟糕的是,for循環內的記錄器不記錄錯誤。

我試圖包裹在一個try/catch語句的整體功能,但沒有跡象什麼錯誤可能是其他比參考staffSheet失敗,因爲沒有表被命名爲「員工」。

回答

0

移動複製的範圍固定下來的問題一行。我不是很肯定爲什麼它跳過了工作人員表而不是審計日誌,但是在我修復其他所有問題後我會解決這個問題。