Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding a row to a named range

I have a named range in Google Sheets (A1:K14). All I'm trying to do is add a new row at the bottom of the named range. It seems like an easy task. The named range doesn't expand using this code and I don't get an error message. It does insert a new row outside of the named range, which is not what I'm trying to do. If I change to insertRowBefore (lastRow), the new blank row is inserted and the named range is expanded. I'm teaching myself GAS, so this is probably a simple mistake on my part

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;
like image 667
Kmh626 Avatar asked Jan 18 '26 23:01

Kmh626


1 Answers

Adding rows and/or columns to a namedRange

This function has the defaults setup to add one row.

//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

Class Range

like image 173
Cooper Avatar answered Jan 20 '26 20:01

Cooper



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!