【问题标题】:GoogleSheets, Conditional timeStamp, based on cell value谷歌表格,条件时间戳,基于单元格值
【发布时间】:2015-07-28 19:12:22
【问题描述】:

根据第 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());
        }
    }
}

【问题讨论】:

  • 我以前没有使用过 Google 电子表格,但根据代码,每次编辑工作表时,该函数都会运行,查看活动单元格,并将相邻单元格设置为当前日期如果单元格在第 1 列中并且包含值“2”。
  • 对,就是这个想法....但由于某种原因它不起作用。调试不会带来任何东西。我认为 getColumn.getValue 部分是错误的。但我不知道正确的写法。

标签: javascript timestamp google-sheets conditional


【解决方案1】:

除了之前的答案,您还可以通过以下方式删除一些 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());
}

【讨论】:

    【解决方案2】:

    问题出在

    r.getColumn.getValue()
    

    应该是

    r.getValue()
    

    我还建议使用“===”而不是“==”。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多