如何将脚本仅应用于一张纸

时间:2019-05-20 20:14:07

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

我需要帮助来调整以下代码,以仅将其应用于工作簿中的一张纸。从第9行开始修改行中的任何单元格时,我想更新N列。这对我来说非常有效,除了它尝试更新工作簿中的所有工作表,而我只希望将其应用于一个工作表。

function isInRange(checkRange, targetCell) {
  Logger.log('checking isInRange');

  var targetRow = targetCell.getRow();
  if (targetRow < checkRange.getRow() || targetRow > 
checkRange.getLastRow()) return false;
  Logger.log('not outside the rows');

  var targetColumn = targetCell.getColumn();
  if (targetColumn < checkRange.getColumn() || targetColumn > 
checkRange.getLastColumn()) return false;
  Logger.log('not outside the columns');

  return true;
}

function onEdit(eventObj) {
  var checkRange = thisSheet = SpreadsheetApp.getActiveSheet(); 
  var checkRange = thisSheet.getRange("A9:N1500");  
  if (isInRange(checkRange, eventObj.range)) {
    Logger.log('cell is in range');
    var propertyCell = eventObj.range;
    var timestampCell = thisSheet.getRange(propertyCell.getRow(), 14);
    timestampCell.setValue(Utilities.formatDate(new Date(), "GMT-4", 
"MM/dd/yyyy hh:mm:ss a"));
  }  else {
    Logger.log('must be outside the range');
  }
}

1 个答案:

答案 0 :(得分:0)

尝试一下:

function onEdit(e) {
  var sh=e.range.getSheet();
  if(sh.getName()!='WhatEverSheetYouWant') return;
  if(e.range.rowStart > 8 && e.range.rowStart <= 1500 && e.range.columnStart >= 1 && e.range.columnStart < 15) {
    sh.getRange(e.range.rowStart,14).setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yyyy hh:mm:ss a"));
  }
}