Google Sheet Script For Clear Range Automation When Date is



需要帮助与谷歌表onEdit(e)功能。当日期到期时,我想清除D:I栏。下面是项目示例链接https://docs.google.com/spreadsheets/d/1zgskq85pX30FQKW9w29n0hWMtWa0vPX5wZfM3lc93Pw/edit?usp=sharing

如果你能解释这个函数(或语法?)将是一个很大的帮助。对不起,完整的Google Script新手。

可以使用复选框清除行:

function onEdit(e) {
var sh = e.source.getActiveSheet();
if (sh.getName() !== 'Sheet1' || e.range.columnStart !== 7 || e.range.rowstart < 9 || e.value !== 'FALSE') 
return;
e.range.offset(0, -3, 1, 3).clearContent()
}

但是我想用clear range if date is due。这可能吗?

可能是这样的:

function set_trigger() {
ScriptApp.newTrigger("clear_rows_due_date").timeBased().everyMinutes(1).create();
}
function clear_rows_due_date() {
var ss        = SpreadsheetApp.getActiveSpreadsheet();
var time_zone = ss.getSpreadsheetTimeZone();
var today     = Utilities.formatDate(new Date(), time_zone, "yyMMdd");
var sheet     = ss.getActiveSheet();
var last_row  = sheet.getLastRow();
var first_row = 9;
var data      = sheet.getRange('d' + first_row + ':f' + last_row).getValues();
for (var r in data) {
if (data[r][2] == '') continue;
var date = Utilities.formatDate(new Date(data[r][2]), time_zone, "yyMMdd");
if (date < today) {
var row_index = +r + first_row;
var a1range = 'd' + row_index + ':f' + row_index;
sheet.getRange(a1range).clearContent();
}
}
}

您必须运行第一个函数set_trigger()并等待。它将每分钟运行第二个函数clear_rows_due_date,如果单元格F包含比今天更早的日期,则该函数将清除单元格D, E, F。

最新更新