当前位置: 首页 > 知识库问答 >
问题:

Google Sheets根据今天的日期隐藏X行

孟茂
2023-03-14

我命名了所有行数相同的区域(21),所有命名区域都以包含日期的单元格开头。当日期比今天的日期早时,我想隐藏其日期单元格下的所有行。或者,隐藏紧跟在日期之后的关联的21行。我不知道如何写剧本,但我会学的。我也发现我不能问一个问题,很抱歉。

我在stackoverflow中找到了一个脚本来隐藏日期比今天早的一行:

function hideRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName("MON");
var v = s.getRange("A:A").getValues();
var today = new Date();
today.setHours(0, 0, 0, 0);
for (var i = s.getLastRow(); i > 2; i--) {
    var t = v[i - 1];
    if (t != "") {
        var u = new Date(t);
        if (u < today) {
            s.hideRows(i);
            }
        }
    }
}

当工作表打开时,我希望日期早于今天的行会导致下21行被隐藏。

共有1个答案

虞裕
2023-03-14

试试这个:

这将获取活动工作表上的所有范围

function hideNamedRange() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rgA=sh.getNamedRanges();
  var dv=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()).valueOf();
  for(var i=0;i<rgA.length;i++) {
    var vA=rgA[i].getRange().getValues();
    if(vA[0][0] && new Date(vA[0][0]).valueOf()<dv) {
      sh.hideRows(rgA[i].getRange().getRow(), rgA[i].getRange().getHeight());
    }
  }
}

这对电子表格也有同样的作用

function hideNamedRange() {
  var ss=SpreadsheetApp.getActive();
  var rgA=ss.getNamedRanges();
  var dv=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()).valueOf();
  for(var i=0;i<rgA.length;i++) {
    var rg=rgA[i].getRange();
    var sh=rg.getSheet();
    var vA=rg.getValues();
    if(vA[0][0] && new Date(vA[0][0]).valueOf()<dv) {
      sh.hideRows(rgA[i].getRange().getRow(), rgA[i].getRange().getHeight());
    }
  }
}
 类似资料:
  • 在GoogleSheets中,当a列中的日期等于或早于今天的日期时,我需要一个脚本来自动隐藏工作表1中的行。 因此,如果今天是2018年8月29日,单元格A3中的日期是2018年8月28日,则第3行的所有内容都将隐藏 但是如果A3单元格中的日期是2018年8月30日,那么所有第3行都将是可见的,直到当前日期是2018年8月31日。 谢谢你能提供的任何帮助。 我一直在使用这段代码,我发现它隐藏了行,

  • 获取今天的日期(年、月、日) 用法 Your browser does not support the video tag. 案例:小闹钟 功能:2019年12月25日,播放圣诞快乐歌

  • 问题内容: 我已经编写了一些代码来检查两个日期,即开始日期和结束日期。如果结束日期早于开始日期,则会提示您结束日期早于开始日期。 我还想添加检查开始日期是否在今天之前(今天和用户使用该应用程序的那天一样)。(下面的日期检查器代码,如果有任何影响,那么所有这些都为Android编写) 问题答案: 这有帮助吗?

  • 我有搜索框的表格。我想在这个搜索框中输入今天的日期,并点击提交按钮后,我从数据库中获得10天的记录。我在table(table=issueDevices的名称)中有以下列。Device_ID、Employee_id、Employee_Name、Employee_Ext、Issue_Date 当我像下面这样编写查询时,pst=con.prepareStatement(“select*from iss

  • 我不确定这是否可能? 我得拿到密码才能读 今天的月份即2月今天的日期即17月底的日期即31日,然后是一年中的其他11个月,在一行中按顺序排列 8月1日-31日|9月|10月|11月|12月|1月|2月|3月|4月|5月|6月|7月 请以最佳方式提供任何建议? 多谢 定时(timing的缩写)

  • 问题内容: 我正在使用PHPMyadmin,并使用PHP将值放入数据库中。我使用时间戳存储产品的到期日期,如下所示,例如: 我要选择所有到期日期等于今天的日期加上8天的日期(例如上面的那一天) 我也想在一个单独的页面中选择所有过期日期等于今天日期+ 2周的内容,如果有人可以帮助我,将不胜感激! 问题答案: 您可以使用以下查询来做到这一点: 您可以使用过去的日期。