当我在我的函数中尝试使用 insertRows()调用或者insertRowsAfter()时,似乎我遇到了一致的“服务器遇到错误”然后在新创建的单元格范围内执行getRange()操作调用(如更改字体粗细或新单元格中的setvalues)。
当我调用我的功能时,我总是得到一个谷歌“服务器遇到和错误”。 当我在调试模式中调用我的函数时,一步一步:没有错误! 我在执行捕获时没有显示错误日志。
我在getRange()操作之前尝试了一个Spreadsheet.flush()调用,没有帮助。
function test() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sdebtcal = ss.getSheetByName('Debt');
var max_rows = sdebtcal.getMaxRows(); // sheet set with only 5 rows to test
sdebtcal.insertRowsAfter( max_rows , 20); // adding 20 rows
sdebtcal.getRange(max_rows+5, 1, 2, 1).setFontWeight('bold'); // trying to setFontWeight in the new range of cells
}
我不得不说我尝试了一个空白的电子表格,我没有问题。仅限我当前的大型电子表格。虽然测试表很小(测试2行!)。此外,我没有达到电子表格中的任何最大单元格限制。
任何有提示的人?带有大型电子表格的电子表格脚本API可能存在的错误?
此致
答案 0 :(得分:0)
我发现,如果在脚本执行时电子表格未在客户端打开,我遇到的InsertRowsBefore()和InsertRowsAfter()遇到的问题就会消失。因此,如果您可以从不同电子表格中的脚本或定时触发器插入行,那么您可能会发现可以解决问题。祝你好运!
如果您需要更多详细信息,我可能会对我在GAS论坛上发表的帖子link发表Issue 1270,您可能也有兴趣在{{3}}添加评论。