【发布时间】:2016-10-19 20:34:34
【问题描述】:
我在使用下面的函数时遇到问题,希望有人能提供帮助。
背景:
下面的函数应该使用 .getValues() 将指定工作表的数据作为数组拉入,然后如果找到数据中的某个范围,则 for 循环应该将行号添加到数组“StoreRows”为空。
我尝试在不使用数组的情况下执行此功能,但效率不够高,并且由于数据量太大会超时。
错误:
我开始收到错误“TypeError: Cannot read property "3" from undefined. (line 16, file "Code")" for the line with if statement.
我添加了消息框来验证数组值是否正确拉入并且该函数可以正常工作。如果我删除消息框,我会再次收到错误消息。由于某种原因,在 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++;
}
}
【问题讨论】:
标签: google-apps-script google-sheets