Debugging 从工作表创建事件时如何处理异常错误?
在我看来,下面的脚本将表单提交收集在一张工作表上,并将其记入日历(Debugging 从工作表创建事件时如何处理异常错误?,debugging,google-apps-script,google-sheets,error-handling,google-calendar-api,Debugging,Google Apps Script,Google Sheets,Error Handling,Google Calendar Api,在我看来,下面的脚本将表单提交收集在一张工作表上,并将其记入日历(calId)。但实际上,脚本在var event=thiscanner.createEvent()处崩溃: 异常:无效参数:booker 函数calendarUpload(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var sheet=ss.getSheetByName(“表单响应1”); var Avals=ss.getRange(“A1:A”).getValues(); v
calId
)。但实际上,脚本在var event=thiscanner.createEvent(
)处崩溃:
异常:无效参数:booker
函数calendarUpload(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“表单响应1”);
var Avals=ss.getRange(“A1:A”).getValues();
var lastRow=Avals.filter(String).length;
Logger.log(lastRow);
对于(var i=2;我已经测试了您的脚本,它在我的端运行,没有出现异常。但是,我将我端的日期格式从这部分“Mmmm”调整为“Mmmm”,因为我无法在测试日历上看到创建的事件的正确月份(例如,2021年5月17日,使用“Mmmm”格式表示月份时,显示“5000”)。如果您还可以与示例数据共享一个示例表,以精确复制您的问题,那就更好了。您还可以查看关于“[Ljava.lang.Object;@”的类似帖子。请添加文本错误消息,并在本例中添加一些相同的数据输入和相应的预期结果。
function calendarUpload() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Form Responses 1");
var Avals = ss.getRange("A1:A").getValues();
var lastRow = Avals.filter(String).length;
Logger.log(lastRow);
for (var i = 2; i <= lastRow ; i++) {
var approvalStatus = sheet.getRange(i,1).getValue();
var name = sheet.getRange(i,8).getValue(); //Event name.
var description = sheet.getRange(i,9).getValue(); //Event description, agenda.
var date = sheet.getRange(i,5).getValue(); //Event date.
var formattedStart = Utilities.formatDate(new Date(date), 'Europe/London', 'MMMM dd, yyyy');
var startTime = sheet.getRange(i,6).getValue(); //Event starting time.
var formattedSTime = Utilities.formatDate(new Date(startTime), 'Europe/London','hh:mm');
var endTime = sheet.getRange(i,7).getValue(); //Estimated end time of event.
var formattedETime = Utilities.formatDate(new Date(endTime), 'Europe/London','hh:mm');
var guests = sheet.getRange(i,15,1,10).getValues(); //Event guests by email address.
var staffMember = sheet.getRange(i,10).getValue(); //Meeting with... Determines Calendar ID (CalID).
var calId = sheet.getRange(i,11).getValue(); //Calendar.
var booker = sheet.getRange (i,3).getValue(); //The person booking the meeting.
var bookerEmail = sheet.getRange(i,4).getValue(); //Email booker, adds to guest list.
var eventStatus = sheet.getRange(1,1,i,12).getCell(i,12);
//Create eventName based on reason for meeting.
if (name == "one-on-one"){
var title = "ℳ " + booker + " and " + staffMember;
} else {
var title = name
}
Logger.log(eventStatus);
Logger.log(title);
Logger.log(formattedStart);
Logger.log(formattedSTime);
Logger.log(formattedETime);
Logger.log(guests);
var startDateandTime = (formattedStart+" "+formattedSTime);
var endDateandTime = (formattedStart+" "+formattedETime);
Logger.log(startDateandTime);
if (approvalStatus == "Approved" && eventStatus.isBlank()){
var thisCalendar = CalendarApp.getCalendarById(calId);
Logger.log('calId: '+calId);
Logger.log(thisCalendar );
var event = thisCalendar.createEvent(
title,
new Date(startDateandTime),
new Date(endDateandTime),
{guests: guests && bookerEmail, description: description});
Logger.log('Event Series ID: ' + eventSeries.getId());
var setEventStatus = sheet.getRange(i,12).setValue('Event Series ID: ' + event.getId());
} else {
Logger.log("No Events Found");
}
}
}