Javascript 如果小于当前日期,则删除范围内的单元格
我有一个纯文本格式的日期范围(必须保持这种方式),如果每个范围单元格中的日期小于当前日期,我需要在凌晨1点清除这些日期。我可以稍后设置跑步计划,但是有人能告诉我为什么这不起作用吗 我使用=TEXT(TODAY(),“m/dd”)在单元格AE3中以正确的格式插入当前日期 谢谢大家!Javascript 如果小于当前日期,则删除范围内的单元格,javascript,date,google-apps-script,google-sheets-api,Javascript,Date,Google Apps Script,Google Sheets Api,我有一个纯文本格式的日期范围(必须保持这种方式),如果每个范围单元格中的日期小于当前日期,我需要在凌晨1点清除这些日期。我可以稍后设置跑步计划,但是有人能告诉我为什么这不起作用吗 我使用=TEXT(TODAY(),“m/dd”)在单元格AE3中以正确的格式插入当前日期 谢谢大家! function clearOldDate() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheet
function clearOldDate()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Loads");
var cells = sheet.getRange('AC9:AE33').getValues();
var data = [cells];
var date = sheet.getRange('AE3').getValues();
//var Sdate = Utilities.formatDate(date,'GMT+0900','MM/dd');
for(i=0; i<76; i++)
{
if (date > data[i])
{
data[i].clear();
};
};
};
函数clearOldDate()
{
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“负载”);
var cells=sheet.getRange('AC9:AE33').getValues();
var数据=[单元格];
var date=sheet.getRange('AE3').getValues();
//var Sdate=Utilities.formatDate(日期,'GMT+0900','MM/dd');
对于(i=0;i数据[i])
{
数据[i].clear();
};
};
};
这应该可以做到
function clearOldDate()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("LogSheet");
//getValues gives a 2D array.
var data = sheet.getRange('AC9:AE33').getValues();
var date = sheet.getRange('AE3').getValues();
//var Sdate = Utilities.formatDate(date,'GMT+0900','MM/dd');
//This for loop with loop through each row
for(i=0; i<data.length; i++)
{
//This for loop with loop through each column
for (var j = 0; j < data[i].length ; j ++){
//This assumes Column AC has the dates you are comparing aganist
if (date > data[i][j])
{
//sets that the Row with index i to empty
data[i] = ["","",""]
};
}
};
//finally set the value back into sheet
sheet.getRange('AC9:AE33').setValues(data)
};
函数clearOldDate()
{
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“日志表”);
//getValues提供一个2D数组。
var data=sheet.getRange('AC9:AE33').getValues();
var date=sheet.getRange('AE3').getValues();
//var Sdate=Utilities.formatDate(日期,'GMT+0900','MM/dd');
//这是一个for循环,循环通过每一行
对于(i=0;i数据[i][j])
{
//将索引为i的行设置为空
数据[i]=[“”,“”,“”]
};
}
};
//最后将值设置回工作表中
sheet.getRange('AC9:AE33')。设置值(数据)
};
基本上,修改数据数组后需要设置值
注意:当值存储为文本时,此语句(日期>数据[i][0])无法按预期工作
编辑:修改了代码并添加了一个新的for循环,以根据注释遍历每一列这确实在AC中清除了日期,但对于我来说并不完全有效,因为任何列中都可能有旧日期。AC、AD、orAE。AC9:AE33中的每个单元格都需要单独考虑。您可以通过在第一个for循环中添加另一个for循环来解决这一问题,以在每列中递增。我更新了代码,应该按照您希望的方式运行到Hanks Jagannathan!我必须将数据[I]=[“”,“”,“”]更改为数据[I][j]=[“”];它只删除每个单元格中的旧日期,而不是整行,但非常有用!!!现在有没有关于如何使用此代码将日期增加1天的想法?