问题描述
因此,我正在运行一个程序,该程序对大型电子表格进行排序,并根据该行中各个单元格的属性将每一行组织为其他工作表。我可以使用宏,但是它非常慢,所以我从头开始,尝试使用块执行来使其更快地工作,而不是重复读取和写入循环中的每个单元。我在下面的If语句遇到问题。如果我正确解释了错误消息,则说明它没有读取2D数组的第二部分。我的代码是:
range = portSheet.getRange(2,1,portSheet.getLastRow(),portSheet.getLastColumn());
var cellValues = range.getValues();
for (i = 0; i <= cellValues.length; i++){
if (cellValues[i][7] == "Confirmed"){
cellValues[i][7] = "X-Confirmed";
}
}
range.setValues(cellValues);
我收到的错误是
“ TypeError:无法读取未定义的属性'6'(第20行)”。
第20行,具体是:
if (cellValues[i][7] == "Confirmed"){
我添加了一些测试行,以确保正确读取和处理信息,并确保正确地插入了单元格。看起来像这样:
range = portSheet.getRange(2,portSheet.getLastColumn());
var cellValues = range.getValues();
range = sipSheet.getRange(2,1);
range.setValue(cellValues[0][6]);
range = sipSheet.getRange(2,2);
range.setValue(cellValues[0][7]);
for (i = 0; i <= cellValues.length; i++){
if (cellValues[i][7] == "Confirmed"){
cellValues[i][7] = "X-Confirmed";
}
}
range.setValues(cellValues);
按预期运行,直到出现问题为止。我使用左侧的单元格进行了测试,目的是确保我正确地计数了单元格。用测试行按预期方式打印了单元格,因此我知道数组实际上是7列宽,并且if语句之前的值存在于数组中。
我已经花了几天的时间对此进行研究,但找不到与我的情况有关的任何信息。我对编码还很陌生,因此可能很明显,但是我希望能获得任何指导。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)