我发现了一个非常棒的脚本,可以同步Google CAL和Google电子表格。双向同步。而且有效! -> https://github.com/Davepar/gcalendarsync
现在,我无法将日历的地址放在名为Data的工作表中。在单元格B1中。脚本应该从那里拉地址,这样我就不需要在脚本中更改它。
有人可以弄清楚该怎么做吗?
所做的更改涉及通过Data!B1
来定义calendarId。
而且该脚本只能在表格上运行
您可以在此处查看示例文档:https://docs.google.com/spreadsheets/d/1TCIIBRmshx2kmhhwrhCpg5sxO7N82tOJ7hHxWv_u-Yw/edit?usp=sharing
我在工作表脚本上复制了脚本
答案 0 :(得分:1)
在第8行声明日历ID
var calendarId = 'bora-bora.dk_is0cr9ibe4thrs4mkqghvudrrk@group.calendar.google.com';
它由两个函数调用:
1 = syncFromCalendar
在第223行。从日历同步到电子表格。
var calendar = CalendarApp.getCalendarById(calendarId);
307行上的 2 = syncToCalendar
。从电子表格同步到日历。
var calendar = CalendarApp.getCalendarById(calendarId);
目标是通过编程方式调用日历ID,以从数据表的单元格B1中获取值。
为此,i)应该删除该变量,ii)添加/插入新代码以获取日历ID的新值,并且iii)对要求日历ID值的函数进行调整。
1-注释掉第8行
2-在第9行插入以下代码
// Get the calendar code from Sheet "Data", cell B1
function getcalendarId() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName("Data");
var calrange = sheet.getRange("B1");
var calid =calrange.getValue();
return calid;
}
3-找到函数= syncFromCalendar
3.1-将此行注释掉
var calendar = CalendarApp.getCalendarById(calendarId);
3.2在注释行上方插入/添加这三行
// Get the calendar ID
var calidFrom = getcalendarId();
var calendar = CalendarApp.getCalendarById(calidFrom);
4-查找功能= syncToCalendar
4.1注释掉这一行
var calendar = CalendarApp.getCalendarById(calendarId);
4.2在注释行上方插入/添加这三行
// Get the calendar ID
var calidTo = getcalendarId();
var calendar = CalendarApp.getCalendarById(calidTo);