我在运行此脚本时收到长度错误,但是如果我注释掉条件并拉出所有内容则没有问题。行中的错误" 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);
}
答案 0 :(得分:1)
问题是JavaScript数组使用基于0的索引,因此,第V列的索引为21而不是22,并且您得到未定义的错误消息,因为第V列是最后一列。