基于单元格值的条件时间戳



根据第1列中输入的数字2使此脚本工作的秘密是什么?我绞尽脑汁地寻找if语句的条件例子,以各种方式进行调整等。有人会以为我现在已经弄明白了。但是没有。不是这样的。是时候动用比我更聪明的人了。

function onEdit() {
    var s = SpreadsheetApp.getActiveSheet();
    if (s.getName() == "Sheet6") { //checks that we're on the correct sheet
        var r = s.getActiveCell();
        if (r.getColumn() == 1 && r.getColumn.getValue() === '2') { //checks the column
            var nextCell = r.offset(0, 1);
            nextCell.setValue(new Date());
        }
    }
}

问题在

r.getColumn.getValue()

应该是

r.getValue()

我还建议使用"==="而不是"=="。

最后,你必须确保你的A列被格式化为纯文本,或者在你的if语句中添加一个条件,以防"2"作为一个数字输入。

除了前面的答案,您还可以通过以下方式删除一些API调用:

function onEdit(e) {
if (e.source.getActiveSheet()
    .getName() !== "Sheet6" || e.range.columnStart !== 1 || e.value !== '2') return;
e.range.offset(0, 1)
    .setValue(new Date());
}

相关内容

  • 没有找到相关文章

最新更新