我一直在试图获取谷歌电子表格时,另一个单元被编辑的数据自动添加到单元格,但我只能似乎使全球的onedit功能工作。
具体地,如果B2,B3,B4等被编辑的,我想N2,N3,N4等,以具有时间戳,或用户的名称自动填充。
任何帮助将不胜感激!
谢谢
我一直在试图获取谷歌电子表格时,另一个单元被编辑的数据自动添加到单元格,但我只能似乎使全球的onedit功能工作。
具体地,如果B2,B3,B4等被编辑的,我想N2,N3,N4等,以具有时间戳,或用户的名称自动填充。
任何帮助将不胜感激!
谢谢
扩大对答案在这里 ...
function onEdit(e)
{
var row = e.range.getRow();
var sheet = e.range.getSheet();
// if B2, B3, B4 etc. was edited, fill N2, N3, N4 etc. with a timestamp
var value = new Date();
// ... or the user's name.
// var value = Session.getActiveUser().getEmail();
var headerRows = 1; // # header rows to ignore
// Skip header rows
if (row <= headerRows) return;
// We're only interested in column B (aka 2)
if (e.range.getColumn() != 2) return;
sheet.getRange(row,14).setValue(value); // N<row>
}
对于其他人可能要自动添加插入数据的日期和时间。
我只是碰到这个问题,我修改所提供的代码互联网极客 。
他们的代码工作通过更新指定列,时间戳插入到其他指定列在同一排。
我改变的是我分开的日期和时间,因为时间戳是一个字符串,而不是日期格式。 我是对生成图形有用。
它通过指定列跟踪更改,然后分别创建的日期和时间的更新和正常运行时间列。
function onEdit(event) {
var timezone = "GMT+1";
var date_format = "MM/dd/yyyy";
var time_format = "hh:mm";
var updateColName = "Резултат";
var DateColName = "upDate";
var TimeColName = "upTime";
var sheet = event.source.getActiveSheet(); // All sheets
// var sheet = event.source.getSheetByName('Test'); //Name of the sheet where you want to run this script.
var actRng = event.source.getActiveRange();
var editColumn = actRng.getColumn();
var index = actRng.getRowIndex();
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var dateCol = headers[0].indexOf(DateColName);
var timeCol = headers[0].indexOf(TimeColName);
var updateCol = headers[0].indexOf(updateColName);
updateCol = updateCol + 1;
if (dateCol > -1 && timeCol > -1 && index > 1 && editColumn == updateCol) {
// only timestamp if 'Last Updated' header exists, but not in the header row itself!
var cellDate = sheet.getRange(index, dateCol + 1);
var cellTime = sheet.getRange(index, timeCol + 1);
var date = Utilities.formatDate(new Date(), timezone, date_format);
var time = Utilities.formatDate(new Date(), timezone, time_format);
cellDate.setValue(date);
cellTime.setValue(time);
}
}
希望这有助于人。