Добавление строки в именованный диапазон в Google Sheets с помощью скрипта Apps - PullRequest
0 голосов
/ 31 января 2020

У меня есть именованный диапазон в Google Sheets (A1: K14). Все, что я пытаюсь сделать, это добавить новую строку внизу именованного диапазона. Это кажется легкой задачей. Именованный диапазон не расширяется при использовании этого кода, и я не получаю сообщение об ошибке. Он вставляет новую строку за пределы именованного диапазона, а это не то, что я пытаюсь сделать. Если я изменяю на insertRowBefore (lastRow), вставляется новая пустая строка, и именованный диапазон расширяется. Я учу себя газу, так что это, вероятно, простая ошибка с моей стороны

Спасибо, Кевин

var sheet = SpreadsheetApp.getActiveSheet()
var Range = sheet.setActiveRange(range);
var data = Range.getValues();
Logger.log(range.getA1Notation());
var lastRow = SpreadsheetApp.getActiveSheet().getRange('DataRange').getNumRows();
SpreadsheetApp.getActive().insertRowAfter(lastRow);
return range;

Ответы [ 2 ]

1 голос
/ 01 февраля 2020

Добавление строк и / или столбцов в namedRange

Эта функция имеет настройки по умолчанию для добавления одной строки.

//r is number of rows to add
//c is number of columns to add
function addRowAndColumnsToNamedRange(name,r,c) {
  var name=name||'One';//default name
  var r=r||1;//default number of rows to add
  var c=c||0;//default number columns to add
  var ss=SpreadsheetApp.getActive();
  var  nrgA=ss.getNamedRanges();
  for(var i=0;i<nrgA.length;i++) {
    if(nrgA[i].getName()==name) {
      var nr=nrgA[i];
      var h=nr.getRange().getHeight();
      var w=nr.getRange().getWidth();
      var sh=nr.getRange().getSheet();
      var row=nr.getRange().getRow();
      var col=nr.getRange().getColumn();
      var rg=sh.getRange(row,col,h+r,w+c);
      ss.setNamedRange(name,rg);
      break;
    }
  } 
}

Class NamedRange

Диапазон классов

1 голос
/ 31 января 2020

Я думаю, что одним из подходов может быть получение этого NamedRange и его явное расширение.

Примерно так:

  1. Получить это NamedRange, используя getNamedRanges(): https://developers.google.com/apps-script/reference/spreadsheet/sheet#getNamedRanges ()

  2. Установить диапазон этого NamedRange, включая новую строку, используя setRange(range): https://developers.google.com/apps-script/reference/spreadsheet/named-range.html#setrangerange

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