有没有办法编辑/删除用户创建的范围?
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
上。
答案 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。下面是我的日志输出的截图。
希望这有帮助!