设置上个月行的值



设置上个月日期的每一行的值,我对如何获得我想要的结果感到困惑。

function hideRows() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Archived Videos");
const vs = sh.getDataRange().getValues();
const dtv = new Date(new Date().getFullYear(),new Date().getMonth() - 1,new Date().getDate()).valueOf();
let rows = [];
vs.forEach((r,i) => {
if(new Date(r[0]).valueOf() < dtv) {
rows.push(i+1);
var val = sh.getRange(i + 1,1,1,20 + 1).setValue(null);
}
})
}   

我需要将上个月的每一行设置为null。我现在的代码将正好一个月前或一个月以前的每一行设置为null。最终的结果应该是,如果今天是9月的任何一天,那么整个8月都将被设置为无效。

编辑:我接受了库珀的回答,但现在需要两个月后,并在8月和9月离开。请参阅下面的评论进行澄清。

将上月行中的日期设置为null

function hideRows() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Archived Videos");
const vs = sh.getDataRange().getValues();
const dtv0 = new Date(new Date().getFullYear(),new Date().getMonth() - 2, Date().getDate()).valueOf();
const dtv1 = new Date(new Date().getFullYear(),new Date().getMonth(), Date().getDate()).valueOf();
let rows = [];
vs.forEach((r,i) => {
let d = new Date(r[0]);
let dv = d.valueOf();
if(dv >= dtv0 && dv < dtv1) {
rows.push(i+1);
sh.getRange(i + 1,1).setValue(null);
}
})
}   

最新更新