首页 > 解决方案 > TypeError:创建 GoogleScripts 自动化时无法读取 null 的属性“createAllDayEvent”

问题描述

首先,我是一个非常新的程序员,所以我为我的无知道歉。无论如何,我今天编写了这段代码来从谷歌表格中获取数据,并将其导入谷歌日历。

//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 列的最后一个单元格是添加到谷歌日历的日期。

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

生成电子表格中分配的Logger.log(depositDate)正确日期,所以我不确定在哪里看。

再次感谢你 :)

标签: google-apps-scriptgoogle-sheetscalendar

解决方案


这对我有用:

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
}

推荐阅读