【问题标题】:Timestamp when Condition is Met满足条件时的时间戳
【发布时间】:2015-05-27 01:59:57
【问题描述】:

我目前有一个与其他 4 个人共享的主文档。现在,我有一个公式,当列 K 具有“关闭”或“同一天关闭”时,用今天的日期标记列 L。我们发现有时时间戳是不准确的,并且会在上周发生的收盘时反映今天的日期。我相信发生这种情况是因为有很多人在访问它,对吗?这是我目前使用的公式:

=IF(OR(K34="Closed",K34="Same Day Close"),TODAY(),"")

所以我认为最好改用脚本,这样时间戳不会受到多个用户在不同时间访问文档的影响。它正在工作,但它并没有完全按照我的需要做。这是脚本:

function onEdit(e) {
  var ss = e.source;
  var activatedSheetName = ss.getActiveSheet().getName();
  var activatedCell = ss.getActiveSelection();
  var activatedCellRow = activatedCell.getRow();
  var activatedCellColumn = activatedCell.getColumn();
  var activatedCellValue = activatedCell.getValue();

  var greg = ss.getSheetByName("Greg"); // source sheet
  var greg = ss.getSheetByName("Greg"); // target sheet

  // if the value in column D is "Approved", move the row to target sheet
  if (activatedSheetName == greg.getName() && activatedCellColumn == 11 && activatedCellValue == "Closed") {
  // add date and time of when approved to target row in column E
    greg.getRange('l' + activatedCellRow).setValue(Date(TODAY));
  }
}

这是我需要它做的没有做的事情:

  1. 我不希望时间戳包含今天以外的任何内容 mm/dd/yyyy 格式的日期(现在它也包括时间)
  2. 我需要“关闭”以及“当天关闭”来触发时间戳
  3. 我需要将代码应用于多张工作表,而不仅仅是“Greg”

提前非常感谢您!这是我第一次尝试实现一个脚本,我已经玩了好几天了,但无济于事。我很感激你的时间。

【问题讨论】:

    标签: google-sheets


    【解决方案1】:

    试试这个脚本:

    function onEdit(e) {
    if (e.range.columnStart !== 11 || e.value !== 'Close' && e.value !== 'Same Day Close') return;
    e.range.offset(0, 1)
        .setValue(new Date())
    }
    

    注意:要去掉时间,只需将 L 列格式化为“日期”(通过菜单中的 123 按钮)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-06
      • 1970-01-01
      • 2021-05-09
      • 2019-04-29
      • 2014-12-01
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多