Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 无法使用.getSelection.getActiveRangeList().getRanges()获取完整范围的数据_Google Apps Script - Fatal编程技术网

Google apps script 无法使用.getSelection.getActiveRangeList().getRanges()获取完整范围的数据

Google apps script 无法使用.getSelection.getActiveRangeList().getRanges()获取完整范围的数据,google-apps-script,Google Apps Script,我已经反复讨论了好几个小时了,我要把头发拔出来 我有一个主电子表格,我从中提取数据,复制数据,然后粘贴到另一张表中。这是根据用户选择的行来完成的。选择单行可以按预期工作,多行(如果相邻)也可以工作。现在,我启动另一个if块,以说明使用此代码块选择的多个非相邻行: var myRange = mySelection.getActiveRangeList().getRanges(); Browser.msgBox(myRange.length) for ( var i = 0

我已经反复讨论了好几个小时了,我要把头发拔出来

我有一个主电子表格,我从中提取数据,复制数据,然后粘贴到另一张表中。这是根据用户选择的行来完成的。选择单行可以按预期工作,多行(如果相邻)也可以工作。现在,我启动另一个if块,以说明使用此代码块选择的多个非相邻行:

    var myRange = mySelection.getActiveRangeList().getRanges();
    Browser.msgBox(myRange.length)
    for ( var i = 0; i < myRange.length; i++) {
        var reserveData = myRange[i].getValues();
        Browser.msgBox(reserveData[i]);
    }
var myRange=mySelection.getActiveRangeList().getRanges();
Browser.msgBox(myRange.length)
对于(变量i=0;i
假设用户选择了4行进行复制。第一个MsgBox将显示长度为4。伟大的 但是,for循环中的MsgBox将仅显示第一次迭代的数据 循环的一部分。第二、第三和第四个MsgBox不包含任何数据

问题:
getValues()
返回一个2D数组。但是
i
会更改每次迭代。
i
中的更改与检索到的二维数组的索引无关。例如,在第二次迭代中,
i
是1,但第二个范围(因此第二个
reserveData
)可能不包含2行(第0行和第1行),因此
reserveData[i]
将是
未定义的

解决方案: 使用


它应该是
Browser.msgBox(reserveData)哦。我的。上帝所以它不是作为对象存储的
getValues()
返回二维数组。但是
i
会更改每次迭代。在第二次迭代中,
i
是1,但第二个范围(因此第二个
reserveData
)可能不包含2行(第0行和第1行)已获取。非常感谢。我会补充一个答案。考虑接受它。
Browser.msgBox(reserveData);//[i] removed