当单元格的值等于某个值时,将一个区域快照到另一个工作表



我有一个工作表,用户可以在其中输入AB2:AV21范围内的值。在单元格AB24到AV24中有一个公式,指示何时满足截止日期。它包括21个不同的截止日期和21个范围。我使用公式截止日期的原因是,每个用户都可以获得此工作表的副本,并且从单个接入点更改截止日期更容易。

我想复制和粘贴每个后续范围,当他们各自的截止日期满足到另一个工作表。例如,当AB24等于"截止日期"时,复制AB2:AB21。从工作表"选择"到工作表"复制选择"。从截止日期单元格中的值更改为"截止日期格式"开始的快照。

OnEdit可能不会在这里工作,因为它需要由公式触发。所以我想第一步是使一个重要的另一个表,使脚本可以使用OnChange。但是,如果用户将值粘贴到原始范围,我不希望在满足截止日期时将这些值复制到上一个快照上。

希望有人能帮帮我。

复制"每小时

function lookfordeadline() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Selectie");
const csh = ss.getSheetByName("Copy Selectie");
const vs = sh.getRange("AB24:AV24").getValues().flat();
vs.forEach((c, i) => {
if (c == "Deadline met") {
csh.appendRow(sh.getRange(2, i + 24, 20).getValues().flat())
}
});
}

需要运行一次来创建触发器。

function createTBTrigger() {
if(ScriptApp.getProjectTriggers().filter(t => t.getHandlerFunction() == "lookfordeadline").length == 0) {
ScriptApp.newTrigger("lookfordeadline").timeBased().everyHours(1).create();
}
}

相关内容