范围不允许添加或更改属性 - Google Apps脚本

时间:2015-06-25 20:15:42

标签: google-apps-script google-sheets google-spreadsheet-api

有没有办法编辑/删除用户创建的范围?

   var ss = SpreadsheetApp.getActive();
   var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Quotation");
   var range = ss.getRangeByName("quoteLines");
   var rangeToCopy = sheet.getRange(range.getLastRow(), 1, 1, 10);

  sheet.insertRowAfter(range.getLastRow());
  rangeToCopy.copyTo(sheet.getRange(range.getLastRow() + 1, 1));
  ss. newRange = sheet.getRange(19, 1, range.getLastRow() - 19, 10);
  ss.removeNamedRange('quoteLines'); <!-- added since I couldn't directly edit range
  ss.setNamedRange('quoteLines', newRange);

上面的代码尝试将格式化的行添加到现有范围,然后替换该范围(因为我无法弄清楚如何将范围扩展1行)。我在工作表中手动定义了范围,但是我得到了错误

Object does not allow properties to be added or changed

在范围quoteLines上。

1 个答案:

答案 0 :(得分:0)

要将范围扩展1行,您应该使用offset函数。

  var ss = SpreadsheetApp.getActive();
  var sname = ss.getSheetByName(sheet_name);
  var sRange = sname.getDataRange();
  Logger.log(sRange.getLastRow());
  var newRange = sRange.offset(1, 0);
  Logger.log(newRange.getLastRow());

这将导致范围增加1行,而列数保持不变。有关详细信息,请查看此documentation。下面是我的日志输出的截图。

enter image description here

希望这有帮助!