重新命名命名范围的脚本不能动态工作吗?

时间:2019-02-12 11:01:43

标签: google-apps-script google-sheets google-sheets-macros

我正在尝试调整命名范围的大小,该大小必须是非常具体的大小(而不是正常更新)

单元格C2包含新范围当前需要的大小(行)= 736

为什么这样做:

function ResizeRecordRange() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.setNamedRange('RecordHistory', spreadsheet.getRange('B4:K739'));
};

但这不起作用:

function ResizeRecordRange() {
  var spreadsheet = SpreadsheetApp.getActive();
  var newLastRow = spreadsheet.getSheetByName("Record").getRange('C2').getValue();
  spreadsheet.setNamedRange('RecordHistory', spreadsheet.getRange(4,2,newLastRow,10));
};

我希望他们都做同样的事情,但是第二个(动态)版本的代码返回Cannot find method getRange(number,number,number,number).

如果有帮助,我可以在单元格C2中编写一个快速公式,以使其包含B4:K739作为字符串,但是我不知道如何将其添加到脚本中?

1 个答案:

答案 0 :(得分:0)

好吧,所以经过一番修补后,它最终起作用了:

function ResizeRecordRange() {
  var spreadsheet = SpreadsheetApp.getActive();
  var newLastRow = spreadsheet.getSheetByName("Record").getRange('C2').getValue();
  //spreadsheet.removeNamedRange('RecordHistory');
  spreadsheet.setNamedRange('RecordHistory', spreadsheet.getSheetByName("Record").getRange(4,2,newLastRow,10));
};