首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使自动时间戳添加到特定的列中?

问如何使自动时间戳添加到特定的列中?
EN

Stack Overflow用户
提问于 2021-03-25 04:08:49
回答 1查看 168关注 0票数 1

(这是-onEdit Not Working When I Copy&Paste Values in Multiple Cells at Once的后续问题)

:当人们编辑电子表格中的特定列时,使用google脚本在每个选项卡上的“时间戳”列中添加一个自动时间戳。

在回答问题之前,会告诉你一些你想知道的事情:

spreadsheet

  • The 专用列中的
  • 共计6选项卡,人们将编辑和,每个工作表中的“时间戳”列位于不同的columns
  • People中,有时通过复制和粘贴或拖动

来同时编辑多个单元格(在同一列中)

我的问题:当任何人编辑特定的列时,如何将时间戳添加到我想要的列中?

例如:

​

  • 当人们在Apple (即A列)中编辑'status‘列时,时间戳将被添加到’time戳‘列(即B列)中。更具体地说,,当人们编辑单元格A2时,当人们编辑Banana选项卡中的“name”列(即D列)时,时间戳将被添加到B2
  • 中,时间戳将被添加到“时间戳”列(即F列)中,人们有时会同时编辑多个单元格(拖动或复制和粘贴)。更具体地说,,当人们编辑单元格D34时,时间戳将添加到F34

中。

但是,使用我现在使用的代码,而不是“时间戳”列,时间戳将始终添加到紧邻“status”或“name”列的列中。

代码语言:javascript
复制
function onEdit(e) {
addTimestamp(e);
}
function addTimestamp(e) {
  var obj = {"Apple": 1, "Banana": 4}; 
  var range = e.range;
  var sheet = range.getSheet();
  var sheetName = sheet.getName();
  var rowStart = range.rowStart;
  var rowEnd = range.rowEnd;
  var columnStart = range.columnStart;
  var columnEnd = range.columnEnd;
  if (obj[sheetName] && columnStart == columnEnd && columnStart == obj[sheetName] && rowStart >= 2) {
    var time = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd');
    sheet.getRange(rowStart, obj[sheetName] + 1, rowEnd - rowStart + 1).setValue(time);
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-25 05:37:08

我相信你的目标如下。

在编辑另一个特定列的单元格时,要将time的值放到特定的列中。例如,当编辑列"A“的单元格时,要将值放到列”C“中。

在这种情况下,我想提出以下修改。

修改脚本:

请根据实际情况修改obj。

代码语言:javascript
复制
function addTimestamp(e) {
  var obj = { "Apple": { "checkColumn": 1, "putColumn": 3 }, "Banana": { "checkColumn": 4, "putColumn": 6 } };

  var range = e.range;
  var sheet = range.getSheet();
  var sheetName = sheet.getName();
  var rowStart = range.rowStart;
  var rowEnd = range.rowEnd;
  var columnStart = range.columnStart;
  var columnEnd = range.columnEnd;
  if (obj[sheetName].checkColumn && columnStart == columnEnd && columnStart == obj[sheetName].checkColumn && rowStart >= 2) {
    var time = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd');
    sheet.getRange(rowStart, obj[sheetName].putColumn, rowEnd - rowStart + 1).setValue(time);
  }
}

在此脚本中,当编辑"Apple“工作表的列"A”时,

  • 将time的值放入"C“列。当编辑“香蕉”工作表的列"D“时,time的值被放入”F“列.

。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66792943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档