谷歌应用程序脚本:电子邮件提醒从列值中提取时间

Google Apps Script: Email Reminder Have Time Pulled from Column Values

本文关键字:提取 取时间 脚本 应用程序 电子邮件 谷歌      更新时间:2023-09-26

我正在尝试创建一个带有脚本的Google Sheets设置,该脚本将创建日历事件并为这些事件设置提醒时间。

我有一切工作但有一个例外:我希望能够有一列"提醒时间"这一列里的每一个细胞都可以有不同的提醒时间对应于一个给定的日历条目(例如,输入一个,将会创建一个日历事件提醒我们提前3天,但对于B型,将创建日历事件提前6天,所以在"提醒时间"列第一个单元格是4320,第二个单元格是8640分钟)(次)。

我的问题是类型A和类型B都被分配了"提醒时间"列中的第一个值(提醒时间列是第8列)。

function pushToCalendar() {
    var sheet = SpreadsheetApp.getActiveSheet();
    //Define reminder, THIS IS WHERE MY PROBLEM SEEMS TO LIE
    var reminder = sheet.getRange(2, 8).getValue();
    var lastRow = sheet.getLastRow();
    var range = sheet.getRange(2, 1, lastRow, 5);
    var values = range.getValues();
    var calendar = CalendarApp.getCalendarById('joncodle9gk4@group.calendar.google.com')
    var numValues = 0;
    for (var i = 0; i < values.length; i++) {
        if ((values[i][0].length > 0) && (values[i][3].length > 0)) {
            if (values[i][4] != 'y') {
                var newEventTitle = 'Note Due: ' + values[i][0] + ' - ' + values[i][3];
                var newEvent = calendar.createAllDayEvent(newEventTitle, values[i][2]);
                newEvent.addEmailReminder(reminder);
                var newEventId = newEvent.getId();
                sheet.getRange(i + 2, 5).setValue('y');
                sheet.getRange(i + 2, 6).setValue(newEventId);
            }
        }
        numValues++;
    }
}

您的"提醒"只从H2读取,而不是该事件的行。所以你需要移动

var reminder = sheet.getRange(2,8).getValue();

插入行循环:

var reminder = sheet.getRange(i+1,8).getValue();