TypeError: Cannot read property 'createAllDayEvent' of null when creating GoogleScripts automation

TypeError: Cannot read property 'createAllDayEvent' of null when creating GoogleScripts automation

首先,我是一个非常新的程序员,所以我为我的无知道歉。不管怎样,我今天写这段代码是为了从 google sheet 中获取数据,并将其导入到 google 日历中。

//create deposit date 
function sheetsToCalendar() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
  var eventCal = CalendarApp.getCalendarById("[omitted]@group.calendar.google.com");
  var lastRow = spreadsheet.getLastRow();

  var depositDate = spreadsheet.getRange(lastRow, 28).getValue(); 

  Logger.log(depositDate)
  eventCal.createAllDayEvent('Deposit Date', depositDate)

}

目的是无论何时执行程序,第 28 列的最后一个单元格是添加到 google 日历的日期。

但是,当它是 运行 时,我得到错误 TypeError: Cannot read property 'createAllDayEvent' of null

Logger.log(depositDate) 生成了在价差中分配的正确日期sheet,所以我不确定去哪里看。

再次感谢您:)

这对我有用:

function sheetsToCalendar() {
  const sh = SpreadsheetApp.getActiveSheet();
  const cal = CalendarApp.getCalendarById(gobj.globals.calendarid);//contains a global object parameter that holds my calendar id
  const depositDate = new Date(sh.getRange(sh.getLastRow(), 28).getValue());//try using the new Date() constructor to get the date from a spreadsheet
  Logger.log(depositDate)
  cal.createAllDayEvent('Deposit Date', depositDate);//this was created on my calendar
}

我发现您不能在 getCalendarById 函数中放入您在 App 脚本项目中使用的其他帐户的 ID。

例如,如果您在“nicolas@gmail.com”中编辑脚本,则需要使用相同的电子邮件帐户创建一个日历 ID。

这为我修复了空错误。