(这是-onEdit Not Working When I Copy&Paste Values in Multiple Cells at Once的后续问题)
:当人们编辑电子表格中的特定列时,使用google脚本在每个选项卡上的“时间戳”列中添加一个自动时间戳。
在回答问题之前,会告诉你一些你想知道的事情:
spreadsheet
来同时编辑多个单元格(在同一列中)
我的问题:当任何人编辑特定的列时,如何将时间戳添加到我想要的列中?
例如:

中。
但是,使用我现在使用的代码,而不是“时间戳”列,时间戳将始终添加到紧邻“status”或“name”列的列中。
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);
}
}发布于 2021-03-25 05:37:08
我相信你的目标如下。
在编辑另一个特定列的单元格时,要将time的值放到特定的列中。例如,当编辑列"A“的单元格时,要将值放到列”C“中。
在这种情况下,我想提出以下修改。
修改脚本:
请根据实际情况修改obj。
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“列.。
https://stackoverflow.com/questions/66792943
复制相似问题