Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用谷歌电子表格(包括自动更改颜色)维护/更新谷歌日历的疑难解答脚本_Javascript_Google Apps Script_Google Sheets_Google Calendar Api - Fatal编程技术网

Javascript 使用谷歌电子表格(包括自动更改颜色)维护/更新谷歌日历的疑难解答脚本

Javascript 使用谷歌电子表格(包括自动更改颜色)维护/更新谷歌日历的疑难解答脚本,javascript,google-apps-script,google-sheets,google-calendar-api,Javascript,Google Apps Script,Google Sheets,Google Calendar Api,我正在尝试编写一个Google应用程序脚本,以完成以下任务: 根据Google日历中的两列更新Google日历 电子表格表示: a。事件是否具有指定的日期列date!= B事件是否已发布到日历 日历中的列=。 一旦事件被添加到日历中,我想在日历中的电子表格列中添加Yes。 如果可能,根据特定列中的属性自动更改事件的颜色,即,如果列状态=NM,则事件的颜色为蓝色,如果状态=MT,则事件的颜色为紫色,等等。 我看了网上的各种帖子,主要是 我蹒跚学步地编写了以下脚本: var IN_CAL=是; 功

我正在尝试编写一个Google应用程序脚本,以完成以下任务:

根据Google日历中的两列更新Google日历 电子表格表示:

a。事件是否具有指定的日期列date!=

B事件是否已发布到日历 日历中的列=。 一旦事件被添加到日历中,我想在日历中的电子表格列中添加Yes。 如果可能,根据特定列中的属性自动更改事件的颜色,即,如果列状态=NM,则事件的颜色为蓝色,如果状态=MT,则事件的颜色为紫色,等等。 我看了网上的各种帖子,主要是

我蹒跚学步地编写了以下脚本:

var IN_CAL=是; 功能测试{ var sheet=电子表格app.getActiveSheet; var startRow=2;//要处理的第一行数据 var data=sheet.getDataRange.getValues;//处理包含数据的任何行 var cal=CalendarApp.getCalendarsByNameOil and Gas Test 3[0]; 对于数据中的i{ var行=数据[i]; var state=行[2]//第三列,带状态的列 var desc=行[5];//第6列,带租约说明的列 var date=行[4];//第5列,带日期的列 变量标题=状态+:+desc; var inCalendar=行[1];//第二列,指示是否在日历中 如果inCalendar!=IN_-CAL&&date!={//阻止向日历添加重复项 cal.createAllDayEventtitle,新日期 var v=parsenti+1; sheet.getRangev,2,1.setValueIN_CAL; SpreadsheetApp.flush;//确保在脚本中断时立即更新单元格 } }
} 通过单击行号向代码中添加断点。你会得到一个红点。见第12行

然后单击bug的图标

您将在屏幕底部的窗口中看到所有变量值

单击“步骤”图标:

如果电子表格单元格中的日期格式为日期,则日期值应如下所示:

if (date != "") {
2015年3月12日星期四19:01:08 GMT-0400美国东部时间

如果单元格格式为字符串,则测试需要如下所示:

if (date != "") {
但是,在任何情况下,都要逐步完成代码,并查看日期变量的数据类型和值。inCalendar变量取决于实际检索的值,将确定需要对条件进行什么检查

我猜:

(date != " ")

总是评估为真的

谢谢Sandy Good,这很有意义。我的电子表格中的日期单元格格式为日期。我知道if语句总是求值为true,因为它正在寻找一个永远不会出现的字符串。当日期单元格为空时,如何编写if语句来回答true?