【发布时间】:2019-12-30 05:57:33
【问题描述】:
所以我想要一个谷歌电子表格从带有两个标签的日历中获取数据。一个选项卡将是输入数据的地方; “咝咝”。第二个选项卡将是一个设置选项卡,您可以在其中选择 DateFrom、DateTo 和 CurrentEmail; “ss设置”。当用户输入往返日期时,他们还可以查看脚本当前从哪个电子邮件获取信息,并且可以根据需要进行更改。我为“datefrom”和“dateto”设置了变量,但是当我尝试对“currentEmail”执行相同操作时,出现以下错误;
TypeError: Cannot call method "getEvents" of null. (line 8, file "Code")
有人知道如何解决这个问题吗?我对谷歌脚本相当陌生。这是我的脚本;
function getEvents() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("GettingEvents")
var ssSettings = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("GettingEventsSettings");
var DateFrom = ssSettings.getRange("B1").getValue();
var DateTo = ssSettings.getRange("B2").getValue();
var CurrentEmail = ssSettings.getRange("B3").getValue();
var cal = CalendarApp.getCalendarById(CurrentEmail);
var events = cal.getEvents(DateFrom, DateTo);
var lr = ss.getLastRow();
ss.getRange(2, 1, lr, 5).clearContent();
for(var i = 0;i<events.length;i++){
var title = events[i].getTitle();
var sd = events[i].getStartTime();
var ed = events[i].getEndTime();
var loc = events[i].getLocation();
var des = events[i].getDescription();
ss.getRange(i+2,1).setValue(title);
ss.getRange(i+2,2).setValue(sd);
ss.getRange(i+2,3).setValue(ed);
ss.getRange(i+2,4).setValue(loc);
ss.getRange(i+2,5).setValue(des);
}
}
我希望设置选项卡看起来像这样,或者用户可以在不修改代码的情况下进行编辑。
【问题讨论】:
-
看看this answer是否有帮助:)
标签: google-apps-script google-sheets google-calendar-api