Google App Script TypeError:无法读取属性"长度"来自undefined

时间:2017-10-19 14:48:04

标签: javascript google-apps-script

我在运行此脚本时收到长度错误,但是如果我注释掉条件并拉出所有内容则没有问题。行中的错误" sp.getRange(1,1,data.length,data [0] .length)。setValues(data); "

我已经三次检查了第22列是我想要的列(第V列)和标准" Denver"存在于该列中,但没有任何内容返回到数据。

任何解释都将不胜感激。

function Packaging() {
 var t = SpreadsheetApp.openById('1kNq2irlV39yDRtuJPrkb3-572guw4wn9UsR2t5_I0pR');

 //Grab PACKAGING COST
var pp = t.getSheetByName('RawData');
var ppk = pp.getRange(1,1,pp.getLastRow(),pp.getLastColumn()).getValues();
var data = []                       
for (var i = 0; i< ppk.length ; i++){
if(ppk[i][22] == "Denver")        
{
data.push(ppk[i])
}
}

//Write in current sheet
var s = SpreadsheetApp.getActiveSpreadsheet();


//Write Packaging
var sp = s.getSheetByName('PackagingCost2');
sp.getRange(1,1,sp.getLastRow(),sp.getLastColumn()).clearContent();
sp.getRange(1,1,data.length,data[0].length).setValues(data);  
//sp.getRange(1,1,ppk.length,ppk[0].length).setValues(ppk);  

}

1 个答案:

答案 0 :(得分:1)

问题是JavaScript数组使用基于0的索引,因此,第V列的索引为21而不是22,并且您得到未定义的错误消息,因为第V列是最后一列。