Google apps script google sheets脚本根据多个单元格中的日期删除行

Google apps script google sheets脚本根据多个单元格中的日期删除行,google-apps-script,google-sheets,google-sheets-api,Google Apps Script,Google Sheets,Google Sheets Api,我正在开发一个从电子表格中删除旧内容的应用程序。我发现有几篇文章根据特定数据隐藏或删除工作表,但它们总是在一个单元格中。我需要检查每行三个单元格中的日期的东西 该表由一个表单填充,该表单要求用户输入他们希望在我们的视频中运行公告的三个日期,并在我任教的HS打印公告。我只想删除旧数据,发现了无数,可能是6或8个类似的脚本示例,所以我抓起一个,并尝试扩展逻辑语句,使用索引检查C、D和E列 它可以工作,但删除所有三列中日期不是今天而不是日期的任何行。我还需要让它将空单元格计数为旧单元格 所以我尝试了库

我正在开发一个从电子表格中删除旧内容的应用程序。我发现有几篇文章根据特定数据隐藏或删除工作表,但它们总是在一个单元格中。我需要检查每行三个单元格中的日期的东西

该表由一个表单填充,该表单要求用户输入他们希望在我们的视频中运行公告的三个日期,并在我任教的HS打印公告。我只想删除旧数据,发现了无数,可能是6或8个类似的脚本示例,所以我抓起一个,并尝试扩展逻辑语句,使用索引检查C、D和E列

它可以工作,但删除所有三列中日期不是今天而不是日期的任何行。我还需要让它将空单元格计数为旧单元格

所以我尝试了库珀建议的剧本,这是一个很大的进步。它仍然在跳过具有空值的行,并且在一种情况下删除了我不想删除的行 在所示的图像中,表单接受来自教师的输入,这些教师最多提交三个日期的公告内容。我已经格式化了表格,将旧日期显示为红色,今天显示为绿色,未来日期显示为黄色。我想删除包含所有红色或空单元格的行。然而,绷带将迫使他们为这三个人选择一个日期,而不是不允许任何人进入。但如果代码能将空白单元格识别为合格单元格,那就太好了。 [![每日公报数据表][1][1]

以下是最终奏效的方法。我确信有一些更流畅的方法可以做到这一点,但实际上我的编程能力有所提高,首先通过日志解决问题,然后在有证据表明我所做的工作有效后继续前进

/* 以下是想法: 我需要有一个脚本,是从插件运行,检查每个单元格的范围 约会。它可以通过条件格式化bg颜色来完成,但这是不可能的 冗余的 第一件事是创建函数来查找并返回具有所有属性的行号 旧的日期。在初始构建中,这些可以返回到内部的log Logger.log 一个forloop。 '*/ 函数读取行{ var sh=电子表格app.getActiveSheet; var rg=sh.getDataRange; var vA=rg.GetValue; var rowsDeleted=0; var today=新日期。valueOf; //在各行中循环。在每行中检查列值的日期。如果日期为旧日期,则将1添加到旧计数 forvar i=vA.length-1;i>=0;i-{ var-oldCount=0; ifnew DatevA[i][2].valueOf请尝试以下操作:

function readRows() {
  var sh=SpreadsheetApp.getActiveSheet();
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  var rowsDeleted=0;
  var today=new Date().valueOf();
  for(var i=vA.length-1;i>=0;i--) {
    if ((new Date(vA[i][2]).valueOf()<today)||(new Date(vA[i][3]).valueOf()<today)||(new Date(vA[i][4]).valueOf()<today) ){
      sh.deleteRow(i+1);
      rowsDeleted++;
    }
  }
  Logger.log(rowsDeleted);
}

我不完全确定您想要什么,但这可能会有所帮助。当您删除行时,您应该从底部开始。

谢谢。这将删除所有包含以前日期的行。我已经完成了一些ActionScript编程,因此Javascript看起来非常熟悉。我理解循环应该从底部开始,我不知道为什么会出现示例e我发现了另一种情况。但是:您使用的if语句包括vA[I][2]。valueOf。我知道I是循环的当前值,指的是一行。据我所知,[2]是第三列,从零开始索引。如果单元格为空,我想这会导致少于今天的结果。我突然想到,每个通过