google-apps-script - 使用按钮清除日期早于今天的行的内容
问题描述
我正在尝试在标题中添加一些 Google 功能。我是初学者,但我已准备好迎接挑战。我设法制作了一个清除整个范围的按钮(C5:G102)。
但我现在想要一个代码,只为比今天更早的日期清除该范围。
我有包含主题、截止日期、描述等的列。整个日期从 C 列到 G 列。因此,当我单击按钮时,我希望该行中已经有比今天更早的截止日期的所有主题都被清除。日期在 D 列中。
可以这样做吗?
我只有这个:
function clearRange() {
//replace 'Sheet1' with your actual sheet name
var sheet = SpreadsheetApp.getActive().getSheetByName('ADD');
sheet.getRange('C5:G102').clearContent();
}
所以,经过一番尝试,我想出了这个:但它不起作用......
function ClearOlder() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ADD');
var lastRow = sheet.getLastRow();
var columnD = sheet.getRange(2, 4, sheet.getLastRow(), 1).getValues();
var day = 24*3600*1000
var today = parseInt((new Date().setHours(0,0,0,0))/day);
for (var i=1; i < columnD.length; i++) {
var dataday = parseInt(new Date(columnD[i][4]).getTime()/day);
if (dataday < today) {sheet.getRange(i+1, 4, lastRow, 1).clearContent();}
}
}
解决方案
您实际上可以直接在 javascript 中比较日期。您不需要该parseInt()
功能。
var TEN_DAYS = 10 * 24 * 60 * 60 * 1000;
// days hrs min sec ms
var expiry = new Date() - TEN_DAYS;
var date1 = new Date('2019-02-5');
var date2 = new Date('2019-02-1');
var date3 = new Date('2019-01-25');
console.log(expiry > date1); //Less than 10 days ago
console.log(expiry > date2); //Less than 10 days ago
console.log(expiry > date3); //More than 10 days ago
更新:您的 columnD 选择器已关闭。
function clearOlder() {
//consider camelCase --> clearOlder()
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastRow = sheet.getLastRow();
var columnD = sheet.getRange(2, 4, sheet.getLastRow(), 1).getValues(); //OP updated this to better fit their specific spreadsheet.
var one_day = 24*3600*1000;
var expiry = new Date() - one_day;
for (var i=1; i < columnD.length; i++) {
var dataday = new Date(columnD[i][0]);
if (expiry > dataday) {
sheet.getRange(i+1, 1, 1, 4).clearContent(); //OP updated this to better fit their specific spreadsheet.
}
}
}
推荐阅读
- angular - 如何绑定并获取使用 angular4 datepicker 动态生成的 datepicker 的值?
- android - onRequestPermissionsResult 正在片段下编译
- react-native - 获取 someUrl.html 在 React Native / Expo 中不起作用?
- haskell - 当“修改”具有相同值的字段时,无法将类型“HandlerSite m0”与“HandlerSite m”匹配
- python - 如何将编辑的txt文件保存到新的txt文件中?
- java - 在这种情况下仅调整图像(png)的大小时,BitmapFactory 真的有必要吗?
- python - 如何获取所有可能响应模式的容器名称?
- ios - Facebook登录按钮不会立即更改为注销按钮在swift中登录后立即
- java - 如何在 Java 运行时生成现有类的字节码?
- github - 如果您将合作者添加到 github 公共存储库,他们会删除或损坏任何东西吗?