谷歌应用程序脚本电子表格错误与insertRows()和getRange()操作后立即

时间:2012-05-04 03:50:12

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

当我在我的函数中尝试使用 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可能存在的错误?

此致

1 个答案:

答案 0 :(得分:0)

我发现,如果在脚本执行时电子表格未在客户端打开,我遇到的InsertRowsBefore()和InsertRowsAfter()遇到的问题就会消失。因此,如果您可以从不同电子表格中的脚本或定时触发器插入行,那么您可能会发现可以解决问题。祝你好运!

如果您需要更多详细信息,我可能会对我在GAS论坛上发表的帖子link发表Issue 1270,您可能也有兴趣在{{3}}添加评论。