Как применить скрипт только к одному листу - PullRequest
0 голосов
/ 20 мая 2019

Мне нужна помощь в настройке следующего кода для применения только к одному листу в книге. Я хочу обновить столбец N, когда любая ячейка в строке изменяется, начиная со строки 9. Это прекрасно работает для меня, за исключением того, что она пытается обновить все листы в книге, и я просто хочу, чтобы она применялась к одному листу.

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 голосов
/ 21 мая 2019

Попробуйте это:

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"));
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...