Function createEvent返回null

问题描述 投票:0回答:1

我一直在编写代码,因此可以在队友的日历上自动创建事件。为此,我创建了一个具有基本信息的表单,将其放入电子表格中(以便我们可以使用这些日志进行其他操作)并编写代码,以便它可以根据表单的答案在适当的日历上自动创建事件。

我遇到了很多问题(这是一个非常基本的代码),但是我是编码的新手,我仍然非常处于基于错误的学习模式。

我发生了一个错误“ TypeError:在AutCal(Código:26:13)处无法读取null的属性'getSheetByName'”,但我通过检查并通过代码重命名该表来解决了这个问题。

我已经测试了每个var,记录了它们的值,以便我确切知道它们是什么,编写了循环嵌套并保存了它。代码如下所示:

function AutCalTESTE(){

  var row = 2;
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Caledário (input) - Mirror');
  var marcado = spreadsheet.getRange(row, 10).getValue();
  var calendarID = spreadsheet.getRange(row, 2).getValue();
  var eventCall = CalendarApp.getCalendarById(calendarID);
  var STime = spreadsheet.getRange(row, 6).getValue();
  var ETime = spreadsheet.getRange(row, 7).getValue();

  while (calendarID!=''){
  while(marcado!=''){
  eventCall.createEvent('Painel',STime,ETime);
  marcado.setValue('OK');
  row++
  };
};
}

现在,我无法解决的问题是,每次调试代码时,它都会返回相同的错误,但是使用方法.createEvent(),它无法读取null属性。

我有点迷失了,所以欢迎您提供帮助。

javascript google-apps-script google-calendar-api
1个回答
0
投票
// make sure this is the same value as the Calendar ID you want
var calendarID = spreadsheet.getRange(row, 2).getValue();
//add some logging
Logger.log(calendarID)

//make sure this doesn't return null, if the calendar ID is wrong it will
var eventCall = CalendarApp.getCalendarById(calendarID);
Logger.log(eventCall)

如果您的calendarId不正确,则将有一个eventCall == null。

这就是为什么在尝试调用null属性时出现错误的原因。

您的日历ID在“日历”应用中的“设置”下,然后在您的特定日历设置下可用。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.