我目前正在使用google应用程序脚本。我有3个列中的列表,当它们被编辑时,我需要检查该列中的数量。每列分配了三个人,如果一个列降到1,而其他列有3个,那么我将在列表中重新分配这些人。
那么,我可以在给定列上'getLastRow‘吗?range类具有可用的getLastRow,但是,range函数本身似乎不会返回具有值的单元格,例如
Logger.log(sheet.getRange("B:B").getLastRow());
。
返回'999.0‘-而包含内容的最后一行是第6行。
有什么想法吗?谢谢。
发布于 2018-08-06 04:07:04
除了使用getValues()并检查每个值之外,没有其他方法。
var lastRow = -1;
sheet.getRange("B:B")
.getValues()
.some(function(e){
lastRow++;
return !(e[0])
});
Logger.log(lastRow);
如果您还打算在脚本中使用所有这些值,则可以使用map
var flattenedValues = sheet.getRange("B:B").getValues().map(function(e){
return e[0]; //flatten Array
});
var lastRow = flattenedValues.indexOf('');
Logger.log(lastRow);
还可以使用
sheet.getRange("B1:B"&sheet.getLastRow());
将有助于避免一堆空值。
上面的所有函数都假定没有任何空格。如果存在,则反向循环以查找lastRow。
参考文献:
https://stackoverflow.com/questions/51697552
复制相似问题