首页 > 解决方案 > 如果 Date_1 > Date_2 则运行脚本

问题描述

表格示例:https ://docs.google.com/spreadsheets/d/1r7N-KeQsWjoI945KcrMDJ8skcl4ctglY-8E68as71oE/edit#gid=1301603299

原始工作表在发生变化时使用 IMPORTHTML 将数据获取到 col B,直到最近谷歌开始缓存一些数据时,我一直做得很好

我正在使用

if( New !== Old )

到目前为止工作良好,但现在恢复到以前的数据并添加旧数据,然后在有新数据时更新等等,与依赖该信息的其他表混淆

所以我试图改变为

if( New > Old)

脚本:

function doUpBalanco() 
{
  
// get input sheet
  const SS = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Balanço');
 
    const New = SS.getRange('B1').getValue();
    const Old = SS.getRange('C1').getValue();

    var LR = SS.getLastRow();
    var LC = SS.getLastColumn();

  if( New !== "-" )  //check if error  //  Balanço
  {
     if( New > Old)  // check if data changed // Balanço
    {
      if( Old == "" )  // check if table is blank // YES // Balanço
      {
        var Data_New_1 = SS.getRange(1,2,LR,1).getValues();
        SS.getRange(1,3,LR,1).setValues(Data_New_1);
      }
      else                 // check if table is blank // NO // Balanço
      {
        var Data_New_1 = SS.getRange(1,2,LR,1).getValues();
        var Data_Backup = SS.getRange(1,3,LR,LC-2).getValues();
        SS.getRange(1,4,LR,LC-2).setValues(Data_Backup);

        SS.getRange(1,3,LR,1).setValues(Data_New_1);
      }
    } 
  }  
};

它没有运行,因为它没有重新调整为 B1 > C1

但是如果我将旧更改为 D1,它会运行

正如我在第 25 - 28 行的支票上显示的那样

我没有使用getDisplayValue而是getValue,所以我有点迷路了

脚本的其余部分运行良好,我基本上只是看不到该检查有什么问题

非常感谢任何见解,谢谢

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


要以数字方式比较日期,请使用Date().valueOf()Date().getTime();


推荐阅读