我正在度过这段代码的可怕时机 . 我学到了很多,但我非常喜欢初学者 .
这是脚本:
//将新事件推送到日历函数pushToCalendar(){//电子表格变量var sheet = SpreadsheetApp.getActiveSheet(); var range = sheet.getRange(1,1,5,25); var values = range.getValues(); //日历变量
var calendar = CalendarApp.getCalendarById('xxxx')
var numValues = 0; for(var i = 0; i <values.length; i){
//检查名称和类型是否已填写 - 由于长度为“未定义”,因此保留日期
if((values [i] [0] .length> 0)&&(values [i] [2] .length> 0)){
//检查之前是否输入过
if(values [i] [16]!='y'){
//创建活动https://developers.google.com/apps-script/class_calendarapp#createEvent
var newEventTitle ='values [i] [1]'''values [i] [15]' - 'values [i] [3]' - 'values [i] [10]'Driver:Needed';
var newEvent = calendar.createAllDayEvent(newEventTitle,values [i] [8]);
//获取ID
var newEventId = newEvent.getId();
//标记为已输入,输入ID
sheet.getRange(i 2,16) . setValue('y');
sheet.getRange(i 2,17) . setValue(newEventId);
} //可以使用else语句在这里编辑
}
numValues; }
这是一个虚拟的链接:
https://docs.google.com/spreadsheets/d/1gBXtHjEhnNSEkJYq2upCWtwkj1ZLWiUYv6KSuMH8Nds/edit?usp=sharing
1 回答
代码错误很少:
1.将新事件推送到日历函数pushToCalendar() . 当您在评论中包含函数语句时,整个语句已被注释掉 .
For循环应从i = 1开始 . 这是因为,当你取i = 0时,这被称为列行的名称 .
sheet.getRange(i 2,16)应更改为sheet.getRange(i 1,16) .
在var values = range.sheet.getRange(1,1,sheet.getLastRow(),25).getValues();
这里的代码:
我尝试了上面的代码,并能够在我的日历中创建活动 . 如果您有任何疑问,请告诉我