【问题标题】:Google sheets timestamp different cell ranges on a row谷歌表格在一行中为不同的单元格范围添加时间戳
【发布时间】:2016-09-12 22:58:35
【问题描述】:

我一直试图在一行上放置两个时间戳,对应于该行上的两个不同单元格范围。我已成功使用此脚本为行上的任何更改添加时间戳(在第 5 列之后)。

如果单元格范围 F 到 L 发生任何更改,我想要在列 E 中放置一个时间戳,然后,如果从列 N 到 Z 进行任何其他更改,则在列 M 中放置另一个时间戳:

function onEdit(e) {
  if (e.range.columnStart < 6 || e.range.rowStart < 2) return;
  e.source.getActiveSheet().getRange(e.range.rowStart, 5)
  .setValue(Utilities.formatDate(new Date(), "GMT-4", "MM/dd/yyyy HH:mm:ss"));
}

【问题讨论】:

    标签: google-apps-script google-sheets timestamp range cell


    【解决方案1】:

    我在Range class documentation 中看不到 rowStart 和 columnStart 属性;似乎最好使用记录在案的方法 getRow 和 getColumn。像这样:

    function onEdit(e) {
      var sheet = e.range.getSheet();
      var row = e.range.getRow(); 
      if (row < 2) {
        return;
      }
      var col = e.range.getColumn();
      if (col >= 6 && col <= 12) {
        sheet.getRange(row, 5).setValue(new Date());
      }
      if (col >= 14 && col <= 26) {
        sheet.getRange(row, 13).setValue(new Date());
      }
    }
    

    如果需要,可以对时间戳列进行格式化以显示日期和时间。

    如您所见,条件语句类似:最左列、最右列、时间戳列。更多可以添加到相同的效果。如果你不想数字母,像

    这样的表达
    "N".charCodeAt(0) - "A".charCodeAt(0) + 1;
    

    可以用来获取N列对应的数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 2023-02-06
      相关资源
      最近更新 更多