首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在给定列中,如何找到最后一个有值的单元格?

在给定列中,如何找到最后一个有值的单元格?
EN

Stack Overflow用户
提问于 2018-08-06 03:23:41
回答 1查看 106关注 0票数 -1

我目前正在使用google应用程序脚本。我有3个列中的列表,当它们被编辑时,我需要检查该列中的数量。每列分配了三个人,如果一个列降到1,而其他列有3个,那么我将在列表中重新分配这些人。

那么,我可以在给定列上'getLastRow‘吗?range类具有可用的getLastRow,但是,range函数本身似乎不会返回具有值的单元格,例如

Logger.log(sheet.getRange("B:B").getLastRow());

返回'999.0‘-而包含内容的最后一行是第6行。

有什么想法吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-08-06 04:07:04

除了使用getValues()并检查每个值之外,没有其他方法。

代码语言:javascript
复制
var lastRow = -1;
sheet.getRange("B:B")
          .getValues()
          .some(function(e){
                lastRow++;
                return !(e[0])
            });
Logger.log(lastRow);

如果您还打算在脚本中使用所有这些值,则可以使用map

代码语言:javascript
复制
var flattenedValues = sheet.getRange("B:B").getValues().map(function(e){
    return e[0]; //flatten Array
});
var lastRow = flattenedValues.indexOf('');
Logger.log(lastRow);

还可以使用

代码语言:javascript
复制
sheet.getRange("B1:B"&sheet.getLastRow());

将有助于避免一堆空值。

上面的所有函数都假定没有任何空格。如果存在,则反向循环以查找lastRow。

参考文献:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51697552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档