Запись в ячейки вне диапазона данных - PullRequest
0 голосов
/ 12 апреля 2020

Мне нужно записать в несколько пустых ячеек, которые находятся вне диапазона данных Google Sheet. У меня есть следующий код:

var ValueSheet = SpreadsheetApp.getActive().getSheetByName('ValueSheet');
var myValueRange = ValueSheet.getDataRange();
var values = myValueRange.getValues();
var columnToCheck = ValueSheet.getRange("C:C").getValues();
var lastRow = getLastRow(columnToCheck);

values[lastRow + 1][3] = "-"; // TypeError: Cannot set property '3' of undefined 

Переменная lastRow возвращает мне последнюю строку с данными, основанными на columnToCheck. Поэтому, если у меня есть последнее значение в строке 50, значение lastRow будет равно 50, но мне нужно записать в ячейку ниже. Сильфон также метод, который я использую, чтобы получить последний ряд.

  function getLastRow(range){

  var rowNum = 0;
  var blank = false;
  for(var row = 0; row < range.length; row++){

    if(range[row][0] === "" && !blank){
      rowNum = row;
      blank = true;

    }else if(range[row][0] !== ""){
      blank = false;
    }
  }
  return rowNum;
}

Есть ли способ обойти это?

1 Ответ

0 голосов
/ 13 апреля 2020

Используйте функцию .getRange(row, column) для доступа к нужной ячейке. В этом случае вы можете использовать .getRange(lastRow + 1, 4) для доступа к строке, расположенной ниже в нужном столбце (имейте в виду, что в этом случае начальный индекс равен 1).

С помощью функции .setValue() вы сможете записать в нужную ячейку.

Список литературы:

Таблица классов

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