我的工作表包含用于创建Google日历活动的数据。事件创建的过程是这样的:当每个单元格值从工作表“onEdit”改变时,触发器被调用,并且在脚本中我有一些标准在调用“createEvent()”方法之前匹配。 下面是工作表的快照:
标准如下:
if(ID_coloumn=="" && start_date_col !="" && end_date_col !="" && status=="Scheduled"){
//then create even...
}
但我的问题有时会多次创建事件。下面是谷歌日历的行军15的截图。在这里你可以看到事件名称“Sid事件”是重复的。
这是我的谷歌应用脚本代码。
function main(){
var RC_value=getRCpositionWithValue(); //Get current row and column number and the value inside that cell
var day_data=day.getData(RC_value.R,RC_value.C); //Get current row data from sheet (Object)
Utilities.sleep(100);
var event_id_col = day_data.range[1]; //Range is the current row's data range horizontally till status
var status=day_data.range[10];
var start_date=day_data.range[3];
var end_date=day_data.range[4];
if(event_id_col == "" && status == "Scheduled" && end_date != "" && start_date !=""){
var event = CalendarApp.getCalendarsByName("xyz")[0].createEvent(day_data.range[0],start_date,end_date);
}else if(event_id_col != ""){
var event_id=day_data.range[1];
if(day_data.range[10]=="Cancelled" || day_data.range[10]=="Bumped"){
//Delete event
CalendarApp.getCalendarsByName("xyz")[0].getEventById(event_id).deleteEvent();
day.updateSheetEventId(RC_value.R,day_data.event_id_col,"Deleted");
}else {
//Update Event
var title=CalendarApp.getCalendarsByName("xyz")[0].getEventById(event_id).setTime(day_data.range[3],day_data.range[4]);
}
}
}
请帮我解决这个问题。或者,如果有人想看到代码,请分享您的电子邮件,我将分享表格,你可以调试它。感谢。