微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

比较具有相同日期的 2 个单元格不起作用

如何解决比较具有相同日期的 2 个单元格不起作用

我有一个带有单元格的电子表格,比如说 range40,其中包含公式:=today() 和另一个我使用脚本设置的公式:range39.setValue();

然后在我的脚本中,我将比较这些单元格。其实我需要解释一下,如果两个单元格不同,我将range39 =的单元格设置为range40.getValue().

因此,如果日期发生变化,我会运行一些脚本并将日期设置为新的,以防止这部分脚本运行到第二天。

My script is: 

var dat1 = range39.getValue();

    var dat2 = range40.getValue();

    if(dat1 != dat2){
    }

并且两个单元格相等,即使在调试器中,但脚本仍在运行!

知道为什么吗?

谢谢!

解决方法

它现在适用于 Marios 解决方案,getDisplayValue

,

解决方案:

首先,您需要将值转换为 Date 对象:

var date1 = new Date(dat1);
var date2 = new Date(dat2);

getTime() 是一个方法,因此您需要一个空参数 () 才能使其正确解释。

所以在你的代码中它会是:

if (date1.getTime() != date2.getTime()) {
// do something
}

示例代码:

function dateCompare() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
  var range1 = sheet.getRange("A1");
  var cell1 = range1.getValue();
  var range2 = sheet.getRange("A2");
  var cell2 = range2.getValue();

  var date1 = new Date(cell1);
  var date2 = new Date(cell2);

  if (date1.getTime() != date2.getTime()) {
    console.log("Unequal dates");
    range2.setValue(cell1);
  }
}

日期被替换:

enter image description here

控制台日志:

enter image description here

参考:

getTime()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。