当另一个单元在谷歌电子表格被编辑在一个小区中自动添加数据(To add data in one ce

2019-08-16 23:24发布

我一直在试图获取谷歌电子表格时,另一个单元被编辑的数据自动添加到单元格,但我只能似乎使全球的onedit功能工作。

具体地,如果B2,B3,B4等被编辑的,我想N2,N3,N4等,以具有时间戳,或用户的名称自动填充。

任何帮助将不胜感激!

谢谢

Answer 1:

扩大对答案在这里 ...

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>
}


Answer 2:

对于其他人可能要自动添加插入数据的日期和时间。

我只是碰到这个问题,我修改所提供的代码互联网极客 。

他们的代码工作通过更新指定列,时间戳插入到其他指定列在同一排。

我改变的是我分开的日期和时间,因为时间戳是一个字符串,而不是日期格式。 我是对生成图形有用。

它通过指定列跟踪更改,然后分别创建的日期和时间的更新和正常运行时间列。

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);
  }
}

希望这有助于人。



文章来源: To add data in one cell automatically when another cell is edited in google spreadsheets