如何解决比较具有相同日期的 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);
}
}
日期被替换:
控制台日志:
参考:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。