setvalues正在添加行

时间:2017-05-16 22:49:44

标签: google-apps-script google-sheets

我有一个简单的脚本可以将值输入到数组中,当我设置值时,它会向我的文档中添加行。

我从第6115行到第6154行获取值,当我将值设置为相同范围时,它会向文档添加6000多行并抛出错误,因为google工作表现在有太多单元格。下面的简单脚本取自较大的函数,但即使是下面最简单的脚本也不起作用。

错误消息: 此操作会将工作簿中的单元格数量增加到2000000个单元格的限制之上。

function test3() {
    var ss=SpreadsheetApp.getActiveSpreadsheet();
    var sheet=ss.getActiveSheet();

     data = sheet.getRange(6115,88,6154,89).getValues(); 
     sheet.getRange(6115,88,6154,89).setValues(data); 
}

我感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

getRange()是“getRange(row,column,numRows,numColumns)”。详细信息在这里。 https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangerow-column-numrows-numcolumns

电子表格中所有单元格的数量可以表示如下。

f1

从您的脚本中,getRange(6115,88,6154,89)可以写成如下。

f2

此值大于显示为错误的电子表格限制。

对于getValues(),即使范围内没有数据,也会为该范围创建数据数组的大小。但这并没有反映在表格上。因此,即使执行此getValues(),也不会发生错误。

但是在setValues()的情况下,当数据的数量大于工作表的大小时,它会通过展开工作表来导入数据。此时,当数据范围超出限制时发生错误。为了避免这种错误,有必要注意细胞数量和范围。

在您的情况下,如果您想避免错误,请缩小范围或创建此电子表格中不是工作表的新电子表格并导入数据。

如果我误解了你的问题,我很抱歉。