首页 > 解决方案 > 如何将单元格(日期共振峰)中的值与脚本中的今天日期进行比较

问题描述

firstDate = SpreadsheetApp.getActiveSpreadsheet.getRange(1,5).getValue());
if (firstDate > Today()) {
spreadsheet.getRange('E2:E').activate();
    spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
    spreadsheet.getRange('E1').activate();
    spreadsheet.getRange('F1').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
    spreadsheet.getRange('E2').activate();
    spreadsheet.getRange('F2:U32').moveTo(spreadsheet.getActiveRange());
}

该方法不是这里的关键部分,我无法让 IF 语句正常工作。我查看了几个示例,我这里的代码是示例之一,但没有一个对我有用。

标签: google-apps-scriptgoogle-sheets

解决方案


首先,您需要更改SpreadsheetApp.getActiveSpreadsheetSpreadsheetApp.getActiveSpreadsheet()as .getActiveSpreadsheet()is a function。

根据单元格中日期的格式,您可以调用:

firstDate = SpreadsheetApp.getActiveSpreadsheet().getRange(1,5).getValue().getTime() 
var Today = new Date()
if (firstDate > Today.getTime(){
  //code
}

或者您可以在比较之前将该值传递给新日期:

firstDate = new Date(SpreadsheetApp.getActiveSpreadsheet().getRange(1,5).getValue())
if (firstDate = Today()){
  //code
}

推荐阅读