Сценарий Google Переместить выделение в определенную ячейку

#google-apps-script

#google-apps-script

Вопрос:

Я пытаюсь переместить курсор (выбрать ячейку), когда пользователь нажимает на лист. Я перепробовал так много вариантов, и ни один из них не работает. Курсор просто остается там, где я нажимаю, вместо того, чтобы перемещаться в указанную ячейку. Примечание: я меняю цвет фона выбранной ячейки, чтобы убедиться, что триггер выбора работает.

   function onSelectionChange(e) {
  
  var range = e.range;
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

 
  range.setBackground("blue");

  sheet.setCurrentCell("a1").activate();
 
}
 

Любая помощь с благодарностью.

Ответ №1:

setCurrentCell Метод никогда не выполняется, потому что вы используете для него неправильный параметр.

Согласно документации здесь, setCurrentCell ожидает объект типа ‘Range`, однако вы передаете ему строку.

Чтобы исправить это, вы должны обновить свою функцию до этого:

 function onSelectionChange(e) {
  var range = e.range;
  var sheet = range.getSheet();
  range.setBackground("blue");
  var cell = sheet.getRange("A1");
  sheet.setCurrentCell(cell);
}

 

Кроме того, поскольку вы используете onSelectionChange триггер, для наилучших практик рекомендуется использовать объект e event, отсюда и приведенные выше изменения.

Ссылка