多个条件时间戳

时间:2015-10-27 22:45:48

标签: google-sheets

我正在使用......

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  var r = s.getActiveCell();
  var time = new Date(+new Date + (1000 * 60 * 60 * 24 * 7));
time = Utilities.formatDate(time, "GMT-08:00", "MM/dd/yyyy");
      if( r.getColumn() == 2 ) { //checks the column
      var nextCell = r.offset(0, 6);
      if( nextCell.getValue() === '' ) //is empty?
        nextCell.setValue(time);       
    }
}

...将时间戳+ 7天添加到H列。

除了这个时间戳功能......(可能是另一个脚本)

  1. 当列D值 = “问题/等待信息”,然后更改为其他任何内容。
    1. 当E列值=“初步,小于25kW”“初步,小于25kW”然后更改至“初步,小于25kW”以外的任何内容“”初步,低于25kW“。
    2. 我们想要再次开始时间戳+ 7天。

      看起来这可能不适用于onEdit,因为在编辑之前必须读取一些值。不知道该怎么做。感谢

      正确,使用onEdit这是不可能的,而不首先将原始数据复制到其他地方。目前我的专业知识是一个复杂的解决方案。

1 个答案:

答案 0 :(得分:1)

也许尝试这样的事情

function onEdit(e) {
var d = new Date(new Date() + (1000 * 60 * 60 * 24 * 7));
var time = Utilities.formatDate(d, "GMT-08:00", "MM/dd/yyyy"),
    ind = [2, 4].indexOf(e.range.columnStart),
    off;
if (ind == 0) {
    off = 6;
} else if (ind == 1 && e.value !== "Questions/Waiting for Info") {
    off = 4;
}
e.range.offset(0, off).setValue(time)
}