我很难让这段代码发挥作用。我经常学习,但我非常喜欢初学者。
这是脚本:
//将新事件推送到日历函数pushToCalendar(){ //电子表格变量
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(1,1,5,25);
var values = range.getValues();//calendar variables var calendar = CalendarApp.getCalendarById('xxxx') var numValues = 0; for (var i = 0; i < values.length; i++) { //check to see if name and type are filled out - date is left off because length is "undefined" if ((values[i][0].length > 0) && (values[i][2].length > 0)) { //check if it's been entered before if (values[i][16]!= 'y') { //create event 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]); //get ID var newEventId = newEvent.getId(); //mark as entered, enter ID sheet.getRange(i+2,16).setValue('y'); sheet.getRange(i+2,17).setValue(newEventId); } //could edit here with an else statement } numValues++; }
这里有一个假人的链接:
https://docs.google.com/spreadsheets/d/1gBXtHjEhnNSEkJYq2upCWtwkj1ZLWiUYv6KSuMH8Nds/edit?usp=sharing
答案 0 :(得分:0)
代码错误很少:
1。//将新事件推送到日历函数pushToCalendar()。当您在评论中包含函数语句时,整个语句已被注释掉。
For循环应从i = 1开始。这是因为,当你取i = 0时,这被称为列行的名称。
sheet.getRange(i + 2,16)应更改为sheet.getRange(i + 1,16)。
这里是代码:
function pushToCalendar() {
//spreadsheet variables
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(1,1,5,25);
var values = range.getValues();
Logger.log(values.length);
//calendar variables
var calendar = CalendarApp.getCalendarById('your calendar ID')
var numValues = 0;
for (var i = 1; i < values.length; i++) {
var check = values[i][0];
//check to see if name and type are filled out - date is left off because length is "undefined"
if ((values[i][0]) && (values[i][2].length > 0)) {
//check if it's been entered before
if (values[i][16]!= 'y') {
//create event 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';
Logger.log(i);
Logger.log(values[i][8]);
var newEvent = calendar.createAllDayEvent(newEventTitle, values[i][8]);
//get ID
var newEventId = newEvent.getId();
//mark as entered, enter ID
sheet.getRange(i+1,16).setValue('y');
sheet.getRange(i+1,17).setValue(newEventId);
} //could edit here with an else statement
}
}
}
我尝试了上面的代码,并且能够在我的日历中创建活动。如果您有任何疑问,请告诉我