javascript - 如果行被Google表格中的过滤器隐藏或未隐藏,如何获取最后一个可见行?
问题描述
如果行被隐藏,只有 lastRow1 向我显示错误的值。如何忽略隐藏行?
function x() {
var s = SpreadsheetApp.getActive().getActiveSheet();
var lastRow1 = s.getLastRow();
var lastRow2 = s.getActiveRange().getLastRow();
Browser.msgBox(lastRow1);
Browser.msgBox(lastRow2);
if (lastRow1 == lastRow2) {
// Do something.
}
}
解决方案
我相信你的目标如下。
为此,这个答案怎么样?
修改点:
- 在这种情况下,
lastRow
使用 检索isRowHiddenByUser
。
修改后的脚本:
function x() {
var s = SpreadsheetApp.getActive().getActiveSheet();
var lastRow = 0;
for (var i = s.getLastRow(); i > 0; i--) {
if (!s.isRowHiddenByUser(i)) {
lastRow = i;
break;
}
}
console.log(lastRow); // or Browser.msgBox(lastRow);
}
笔记:
如果您想
lastRow
通过基本过滤器从带有隐藏行的工作表中检索,请进行如下修改。从
if (!s.isRowHiddenByUser(i)) {
至
if (!s.isRowHiddenByFilter(i)) {
参考:
推荐阅读
- email - 带有气流的电子邮件
- php - Codeigniter facebook 身份验证问题
- compiler-construction - C 编译器如何提供对多个内存的访问?
- typescript - 类型保护过滤后从回调中访问类成员
- c++ - 在 std::pair 的 std::vector 中查找最小值和最大值
- python - Pandas - 比较两个 Csv 数据帧,但一个 csv 有问题
- java - 在打开文件之前如何知道编码方案?
- c++ - C++ 警告:在一个声明中将截断从 double 初始化为 float,但在另一个声明中没有
- javascript - 数据表不显示 JSON 数据
- php - 在 config.php 中包含文件