根据运营商的决定将电子表格添加到日历中

时间:2017-08-15 17:40:49

标签: google-apps-script

您好我正在创建一个从工作表中获取数据的脚本(从表单接收数据)根据操作员的决定在我的主日历中创建一个事件。

它从表A到F中接收表格中的数据。在G栏中,运营商决定是“是”还是“否”。

如果G为“是”,则脚本会在H列中检查是否写入了某些内容。如果是空的 脚本写入H列并创建一个数据为A:F的事件, 如果没有在H列中写入某些东西,它只会传递到下一行,直到写完最后一行。

仅当整个H列为空时,我的脚本才能正常工作。这迫使我总是清除H列,并使用每个新条目重复已写入日历的事件。

如何让脚本继续运行而不必清除H列?

我的脚本是:

function teste() {
var ss = SpreadsheetApp.getActive();
var dados = ss.getDataRange().getValues();
var ultimaLinha = ss.getLastRow() - 1;
var options = {
    description: dados[ultimaLinha][2],
    location: dados[ultimaLinha][5],
};
for (var i = 1; i < ultimaLinha + 1; i++) {
    var validacao = dados[i][6];
    var escrita = dados[i][7];
    if (validacao === "Yes") {
        if (escrita == null) {
            SpreadsheetApp.getActiveSheet().getRange(i + 1, 8).setValue('ok');
            var event = CalendarApp.getDefaultCalendar().createEvent(
                dados[i][1],
                new Date(dados[i][3]),
                new Date(dados[i][4]),
                options);
        }
    }
}

我的工作表

enter image description here

2 个答案:

答案 0 :(得分:0)

如果我理解您的摘要,我认为您需要删除以下检查。

 if (escrita == null) {

答案 1 :(得分:0)

X数据数组中的空单元格仍然存在时,它们只包含一个空字符串。将getValues()更改为null

""