首页 > 解决方案 > 如何根据日期值将一行移动到另一个工作表

问题描述

我想根据日期值将一行移动到另一个选项卡。即,如果数据比今天早 90 天,则 Sheet1 中的行应自动传输到另一个 Sheet2。

样本表:
https ://docs.google.com/spreadsheets/d/18oBHEt6isDQspUBUQdsWaq5F6I2orLSJfj5lSt4-YL0/edit?usp=sharing

这可能吗,你能帮我写这个函数的脚本吗?

注意:我需要从 Sheet1 中完全删除该行。

标签: google-apps-scriptgoogle-sheets

解决方案


移动 90 天前的行

function moveRows90DaysOld() {
  var v=new Date().valueOf()-(1000 * 60 * 60 * 24 * 90);
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet177');
  var tsh=ss.getSheetByName('Sheet178');
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  var d=0;
  for(var i=0;i<vA.length;i++) {
    if(new Date(vA[i][0]).valueOf()<v) {
      tsh.appendRow(vA[i]);
      sh.deleteRow(i+1-d++);
    }
  }              
}

推荐阅读