在if语句中添加附加条件



与这些&感觉我把所有可能的组合都放在一起了,只是没有完全理解。

我有一个神奇的脚本,当同一行(只是不同的列(的复选框为true时,它会记录时间戳。

本质上,我试图为它添加另一个级别,在那里我可以设置一个不同列的状态,然后记录一个时间戳。

换句话说,这就是工作脚本(如果有的话(:

function onEdit(e) {
const sheet = e.range.getSheet();



if (sheet.getName() !== 'TEST SHEET'
|| sheet.getRange('P' + e.range.rowStart).getValue() !== 'In Progress') {
return;
}
sheet.getRange('AK' + e.range.rowStart)
.setValue(new Date())
.setNumberFormat('MM/dd/yyyy');
}

我正试着把它做成:

function onEdit(e) {
const sheet = e.range.getSheet();

if (sheet.getName() !== 'TEST SHEET'
|| sheet.getRange('P' + e.range.rowStart).getValue() !== 'In Progress') {
return;
}
sheet.getRange('AK' + e.range.rowStart)
.setValue(new Date())
.setNumberFormat('MM/dd/yyyy');

if (sheet.getName() !== 'TEST SHEET'
|| sheet.getRange('P' + e.range.rowStart).getValue() !== 'Completed') {
return;
}
sheet.getRange('AL' + e.range.rowStart)
.setValue(new Date())
.setNumberFormat('MM/dd/yyyy');

}

做一些研究,似乎什么都不会工作后";return";。。我以前尝试过在字段中添加,并做了一些测试来移动所有内容,但现在仍然很幸运。

这里有什么简单的东西我遗漏了吗?

我会为每个可能更改的值(要设置的范围和要比较的值(添加一个参数,然后调用该函数两次。

function tryInsertDate(e, rangeToSet, val) {
const sheet = e.range.getSheet();
if (
sheet.getName() !== 'TEST SHEET'
|| sheet.getRange('P' + e.range.rowStart).getValue() !== val
) {
return;
}
sheet.getRange(rangeToSet + e.range.rowStart)
.setValue(new Date())
.setNumberFormat('MM/dd/yyyy');
}
function onEdit(e) {
tryInsertDate(e, 'AK', 'In Progress');
tryInsertDate(e, 'AL', 'Completed');
}

如果这些是状态,则可以将参数命名为state以更精确。

最新更新