If statement 谷歌表单脚本,如果单元格的日期

If statement 谷歌表单脚本,如果单元格的日期,if-statement,google-sheets,If Statement,Google Sheets,我一直在尝试使用IF语句,使用工作表上的项目作为答案,但遇到了一些问题,大多数情况下,我要么直接使用字符串作为第一个语句,要么使用工作表中的另一个单元格,将该语句与我试图检测的语句进行比较,但没有任何结果。大多数情况下,我的目标是,使用daly触发器,使用IF语句来检测每天的日期是否与单元格上标记的日期相同,我当前唯一的解决方案是,唯一的事情是让它检测单元格是否为空,所以我只使用谷歌公式来检测日期,如果为真,则将其设为空,如果没有,就让一些东西出现 以下是我一直在尝试的一些测试 测试1: var

我一直在尝试使用IF语句,使用工作表上的项目作为答案,但遇到了一些问题,大多数情况下,我要么直接使用字符串作为第一个语句,要么使用工作表中的另一个单元格,将该语句与我试图检测的语句进行比较,但没有任何结果。大多数情况下,我的目标是,使用daly触发器,使用IF语句来检测每天的日期是否与单元格上标记的日期相同,我当前唯一的解决方案是,唯一的事情是让它检测单元格是否为空,所以我只使用谷歌公式来检测日期,如果为真,则将其设为空,如果没有,就让一些东西出现

以下是我一直在尝试的一些测试

测试1:

var Sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SheetName");
else if (Sheet.getRange(1, 1).getValue() == "2/2/2020"){}
(单元格A1=2/2/2020)

测试2:

var Sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SheetName");
else if (Sheet.getRange(1, 1).getValue() == Sheet.getRange(1, 2).getValue()){}
(单元格A1=2/2/2020)
(单元格B1=2/2/2020)

根据您的目标,这里有两种解决方案

第一个获取值,将其格式化为日期格式,然后进行比较

function myFunction() {
  var tz = Session.getScriptTimeZone();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('SheetName');
  var data = sheet.getDataRange().getValues();
  
  var aVal = Utilities.formatDate(data[0][0],tz,'MM/dd/YYYY');
  var bVal = Utilities.formatDate(data[0][1],tz,'MM/dd/YYYY');
  
  Logger.log([aVal,bVal])

  if(aVal == bVal) {
  
    //do something
    
  }

}
第二部分获取显示值并进行比较。第一个解决方案比较日期值,而第二个解决方案将日期作为字符串进行比较。祝你好运

function myFunction1() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('SheetName');
  var data = sheet.getDataRange().getDisplayValues();
  
  var aVal = data[0][0]
  var bVal = data[0][1]
  
  Logger.log([aVal,bVal])

  if(aVal == bVal) {
  
    //do something
    
  }

}

第一个有点问题,由于某种原因,它与单元格有点混淆,当我记录日期时,当用调试检查它时,出于某种原因,它将显示的日期减少了一个。第二种方法非常有效。也可以让它检测一周中的某一天,或者是一个月的第一天吗?查看这两个问题/答案,了解如何获取一周中的某一天和一个月的第一天/最后一天的一些提示。和