我遇到以下功能的问题,我希望有人可以提供帮助。
背景:
下面的函数应该使用.getValues()将指定工作表的数据作为数组拉出,然后如果找到数据中的某个范围,则for循环应该将行号添加到数组“StoreRows”是空的。
我尝试在没有阵列的情况下执行此功能,但由于数据量庞大而无法提供足够的效率。
错误:
我开始收到错误“TypeError:无法读取属性”3“来自未定义。(第16行,文件”代码“)”为带有if语句的行。
我添加了消息框以验证数组值是否正确拉入并且函数可以正常工作。如果我删除了消息框,我再次收到错误。由于某种原因,在if语句中没有识别该数组。
请帮忙,我们将不胜感激!!
谢谢,
乔
function Test()
{
var SS = SpreadsheetApp.getActiveSpreadsheet();
var Sheet = SS.getSheets()[0];
var LastRow = Sheet.getLastRow();
var Data = Sheet.getRange("A2" + ":" + "T" + LastRow).getValues();
var ARow = 0;
var StoreRows = new Array();
var ArrayRow = 0;
for(ARow = 0; ARow < LastRow; ARow++)
{
if(String(Data[ARow][3]) == "" && String(Data[ARow][4]) == "" && String(Data[ARow][5]) == "" && String(Data[ARow][6]) == "" && String(Data[ARow][7]) == "" && String(Data[ARow][8]) == "" && String(Data[ARow][9]) == "" && String(Data[ARow][10]) == "" && String(Data[ARow][11]) == ""
&& String(Data[ARow][12]) == "" && String(Data[ARow][13]) == "" && String(Data[ARow][14]) == "" && String(Data[ARow][15]) == "" && String(Data[ARow][16]) == "" && String(Data[ARow][17]) == "")
{
Browser.msgBox(ARow + 2 + " " + "Test");
StoreRows[ArrayRow] = ARow + 2;
ArrayRow++;
}
}
答案 0 :(得分:2)
坚持
StoreRows[ArrayRow] = ARow + 2;
ArrayRow++;
尝试
StoreRows.push(ARow + 2);