Я использую установленный триггер редактирования Google Sheets для создания Google Tasks.Однако, когда строка, содержащая задачу, которая уже была создана как задача, редактируется, дублирующаяся задача создается для того же дня.
Я бы хотел найти все задачи в данном списке сконкретный срокЗатем я смогу проверить их заголовки, сравнить с названием задачи, которая будет создана, поэтому сценарий может решить, следует ли ему создать новую задачу или обновить существующую.
Вот мой текущийсработавший код:
function addTask(event){
if (spreadsheet.getActiveSheet().getName() === "Task List") {
var RowNum = event.range.getRow();
var taskproperties = spreadsheet.getActiveSheet().getRange(RowNum, 1, 1, 5).getValues();
var Title = taskproperties[0][1];
var Frequency = taskproperties[0][2];
var StartDate = taskproperties[0][3];
var Recurrence = taskproperties[0][4];
if (Title.trim().length !== 0 && Frequency.trim().length !== 0 &&
StartDate.toString().trim().length !== 0 && Recurrence.toString().trim().length !== 0)
{
//Code to Create a new task
//Code Get the task date
//Some codes to set Date parameters for use in script functions
//Some codes to set Date parameters for use in sheet functions
//Set the task parameters
//add task to list
//--------------------------------------------------------------
//Assign a cell in the spreadsheet for calculation of new dates for recurring task
var tempdatecell= spreadsheet.getSheetByName("Task List").getRange("F1")
//Insert new tasks based on the number of recurrence
for (i = 1; i < Recurrence; i++) {
//Insert a formula in a cell the spreadsheet to calculate the new task date
tempdatecell.setFormula('=WORKDAY.INTL("' + shTaskStartDate + '",' + i + '*VLOOKUP("' + Frequency + '",tasktype,2,false),"1000011")')
//Get task date from the cell
TaskDate = tempdatecell.getValue()
//Date parameters for use in script functions
var TaskDate = new Date(TaskDate);
var taskmonth = Number(TaskDate.getMonth())
var taskDay = TaskDate.getDate() + 1
var taskyear = TaskDate.getYear()
//Create a new task
var task = Tasks.newTask();
//Set the task parameters
task.title = Title;
task.due = new Date(taskyear, taskmonth, taskDay).toISOString()
//add task to list
task = Tasks.Tasks.insert(task, tasklistID);
}
tempdatecell.clearContent()
}
}
}