Как определить конкретный лист - ошибка .getsheetbyname - PullRequest
0 голосов
/ 25 марта 2019

Я просто хочу определить конкретный лист для этого кода:

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  var r = s.getActiveCell();
  if( r.getColumn() == 3 && r.getValue() == '3')
    var nextCell = r.offset(0, 1);
    nextCell.setValue("1");  
}

Я пытался .getSheetByName():

function onEdit() {
  var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test");
  var r = s.getActiveCell();
  if( r.getColumn() == 3 && r.getValue() == '3')
    var nextCell = r.offset(0, 1);
    nextCell.setValue("1");
}

Но он все еще работает на всех листах. У меня такое ощущение, что это связано с .getActiveCell(), .getColumn() и .getValue(). Нужно ли указывать, на каком листе они тоже? Если так, то как? Большое спасибо!

1 Ответ

0 голосов
/ 25 марта 2019

Используйте объект события, чтобы проверить, является ли текущий лист тем, над которым вы пытаетесь работать.Измените 'required sheet name' на то, что вам нужно.

function onEdit(e) {
  var range = e.range;
  var name = range.getSheet().getName();
  // check if 'name' is OK
  // if OK, proceed
  // if NOT OK, return
  if (name != 'required sheet name') return;
  if (range.getColumn() == 3 && range.getValue() == '3') {
    var nextCell = range.offset(0, 1);
    nextCell.setValue('1');
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...