Как заставить курсор перейти в строку Google Sheets? - PullRequest
0 голосов
/ 16 января 2019

У меня есть следующий связанный скрипт, который работает для добавления новой строки в электронную таблицу:

function addSong() {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getActiveSheet();
  var lastRow = sheet.getLastRow()
  sheet.appendRow([lastRow+1]);
  var range = sheet.getRange(sheet.getLastRow(), 1);
  SpreadsheetApp.setActiveRange(range);
}

Что не работает, так это последние две строки, которые, как я ожидал, поместят курсор (т.е. выберите) последнюю (и новую) строку. Но это не так.

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Я думаю, это то, что вы ищете. Вам нужно использовать правильную функцию getRange (), которая определяет размеры диапазона; тот, который принимает только два аргумента, всегда возвращает одну ячейку.

Программа также устанавливает цвет фона для ясности того, что диапазон на самом деле.

Это также установит выбор, но вы, возможно, захотите понять взаимосвязь между диапазонами и Классом выбора

function addSong(song) {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getActiveSheet();
  var lastRow = sheet.getLastRow()
  sheet.appendRow([lastRow+1,song]);
  var range = sheet.getRange(sheet.getLastRow(), 1);
  // getRange(row, column, numRows, numColumns)
  var range = sheet.getRange(sheet.getLastRow()-1, 1, 2, 2);

  SpreadsheetApp.setActiveRange(range);
  range.setBackground('green');
}

function test() {
  addSong("Stairway to Heaven");
}
0 голосов
/ 16 января 2019

Возможно, вы захотите попробовать SpreadsheetApp.flush ().

function addSong() {
    var ss = SpreadsheetApp.getActive();
    var sheet = ss.getActiveSheet();
    var lastRow = sheet.getLastRow()
    sheet.appendRow([lastRow+1]);
    SpreadsheetApp.flush();
    var range = sheet.getRange(sheet.getLastRow(), 1);
    SpreadsheetApp.setActiveRange(range);
}

Это должно сбросить электронную таблицу и сделать изменения правильными, а не ждать, пока скрипт завершит добавление этой последней строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...