【问题标题】:How to get last visible row, if rows are hidden or not hidden by filter in Google Sheets?如果行被Google表格中的过滤器隐藏或未隐藏,如何获取最后一个可见行?
【发布时间】:2020-05-17 11:09:09
【问题描述】:

只有 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.
  }
}

【问题讨论】:

    标签: javascript google-apps-script google-sheets row selection


    【解决方案1】:

    我相信你的目标如下。

    • 当出现以下示例情况时,您希望将5 检索为lastRow。

    • 您希望使用 Google Apps 脚本实现此目的。

    对于这个,这个答案怎么样?

    修改点:

    • 在这种情况下,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)) {
        

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多