通过vlookup更新特定单元格时Google工作表中的时间戳

时间:2019-03-25 12:37:05

标签: javascript google-apps-script google-sheets timestamp google-sheets-formula

当其他单元格通过vlookup功能从其他工作表更新其他单元格时,我想用时间戳更新Google工作表中的特定单元格。

如果我手动编辑单元格,但是如果单元格由某些vlookup更新,那么我的代码就可以正常工作了。

function onEdit(event)
{
{ 
  var timezone = "GMT+3";
  //var timestamp_format = "MM/dd/yyyy hh:mm:ss"; // Timestamp Format. 
  var timestamp_format = "hh:mm:ss"; // Timestamp Format. 
  var updateColName = "AFT 2:45";
  var timeStampColName = "BTST Brkout Time";
  var sheet = event.source.getSheetByName('SCAN'); //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(timeStampColName);
  var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1;
  if (dateCol > -1 && index > 1 && editColumn == updateCol) { // only timestamp if 'Last Updated' header exists, but not in the header row itself!
    var cell = sheet.getRange(index, dateCol + 1);
    var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
    cell.setValue(date);
  }
}

实际结果: 如果我更新“ AFT 2:45”列中的任何单元格,那么时间戳将自动在“ BTST Brkout时间”列中显示。

如果vlookup函数更新了“ AFT 2:45”列中任何单元格中的值,则“ BTST brkout时间”列中的时间戳不会更新。

预期结果: 如果vlookup函数更新了“ AFT 2:45”列中任何单元格中的值,则应在“ BTST brkout时间”列中更新时间戳。

0 个答案:

没有答案