首页 文章

setvalues正在添加行

提问于
浏览
0

我有一个简单的脚本,可以将值转换为数组,当我设置值时,它会向我的文档添加行 .

我从第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 回答

  • 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() 的情况下,当数据的数量大于工作表的大小时,它会通过展开工作表来导入数据 . 此时,当数据范围超出限制时发生错误 . 为了避免这种错误,有必要注意细胞数量和范围 .

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

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

相关问题