0

我正在尝试创建一个 Google 脚本,它允许我将事件从多个工作表中提取到 Google 日历中,但我遇到了重复问题。我在想我必须在创建新事件之前删除事件(以便更新),但是遇到了“无法找到方法 getEventsForDay(字符串)”错误的问题。有什么建议么?

function pushToPreKCalendar(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Pre-K");
  var lastRow = sheet.getLastRow(); 
  var range = sheet.getRange(3,1,lastRow,100);
  var values = range.getValues();   
  var data = range.getValues();
  var cal1 = CalendarApp.getCalendarsByName("WDW FB")[0];
  var cal2 = CalendarApp.getCalendarsByName("WDW Latino FB")[0];
  var cal3 = CalendarApp.getCalendarsByName("WDW Pinterest")[0];
  for (i in data){ 
  var row = data[i];
  var title = row[0];
  var date = row[2];
  var desc = row[3];
  var cal = row[4];
  var events1 = cal1.getEventsForDay(date);
     for (var i=0; i<events1.length;i++){
     var ev1 = events1[i];
     Logger.log(ev1.getTitle());
     ev1.deleteEvent();
  }
  var events2 = cal2.getEventsForDay(date);
  for (var i=0; i<events2.length;i++){
    var ev2 = events2[i];
    Logger.log(ev2.getTitle());
    ev2.deleteEvent();
  }
  var events3 = cal3.getEventsForDay(date);
  for (var i=0; i<events3.length;i++){
    var ev3 = events3[i];
    Logger.log(ev3.getTitle());
    ev3.deleteEvent();
  }
        if (cal=="WDW FB")
          var newEvent = cal1.createAllDayEvent(title, date, {description:desc});
        if (cal=="WDW Latino FB")
          var newEvent = cal2.createAllDayEvent(title, date, {description:desc});
        if (cal== "WDW Pinterest")
          var newEvent = cal3.createAllDayEvent(title, date, {description:desc});
  }
}
4

1 回答 1

1

似乎问题出现在以下行:var date = row[2];,date是文本类型,也许该列具有日期类型值,但var date = row[2];返回文本字符串,因此您需要将值row[2]转换为日期类型以作为参数传递给方法getEventsForDay(date)

如果您尝试以下操作:

...
var events1 = cal1.getEventsForDay(new Date());
...

不会产生错误。

于 2013-10-30T20:29:01.670 回答