Google apps script 如果列的日期早于一个月,则删除行

Google apps script 如果列的日期早于一个月,则删除行,google-apps-script,google-sheets,delete-row,Google Apps Script,Google Sheets,Delete Row,我从中找到了这段代码,并对其进行了一些编辑。我需要我的工作表在L列中的条目超过一个月时删除任何行,但保留该行如果L列中的单元格为空,我需要一些指导。根据要求,我可以提供一份我的工作表副本并展示示例。这对其他人来说似乎很容易,但我觉得只有16岁,而且只是学习java,这对我来说很不利 function DeleteOldEntries() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName(

我从中找到了这段代码,并对其进行了一些编辑。我需要我的工作表在L列中的条目超过一个月时删除任何行,但保留该行如果L列中的单元格为空,我需要一些指导。根据要求,我可以提供一份我的工作表副本并展示示例。这对其他人来说似乎很容易,但我觉得只有16岁,而且只是学习java,这对我来说很不利

function DeleteOldEntries() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");//assumes Sheet 1 is the name of the sheet
var datarange = sheet.getDataRange();
var lastrow = datarange.getLastRow();
var values = datarange.getValues();// get all data in a 2D array

var currentDate = new Date();//today
var monthOld = Date.now() + -30*24*3600*1000; 
for (i=lastrow;i>=3;i--) {
var tempDate = values[i-1][11];// arrays are 0 indexed so row1 = values[0] and col12 = [11]
if  (tempDate <= (monthOld))
{
  sheet.deleteRow(i);
}
函数DeleteOldEntries(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“Sheet1”);//假设工作表1是工作表的名称
var datarange=sheet.getDataRange();
var lastrow=datarange.getLastRow();
var values=datarange.getValues();//获取二维数组中的所有数据
var currentDate=新日期();//今天
var monthhold=Date.now()+-30*24*3600*1000;
对于(i=lastrow;i>=3;i--){
var tempDate=values[i-1][11];//数组的索引为0,因此row1=values[0]和col12=[11]

如果(tempDate我将提供一些帮助,尽管我会因此受到惩罚。在未来,做一些研究,尝试理解代码,并使代码符合你的目的。如果你不能,而谷歌没有帮助,那么就来问一个清楚的问题,问出所有细节。这里的大多数顶尖人物甚至不会看你如果所有这些都没有完成的话,你可以问一个问题。另外,确保在你的问题上使用正确的标签。如果没有标签,它甚至不会显示给正确的人

现在请回答:

如果L列中的日期过去大于30天,则需要删除一行。您提供的代码将在C列中查找日期。因此,这是需要更改的第一件事。其次,条件
if((tempDate!=NaN)&&(tempDate
函数DeleteOldEntries(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“Sheet1”);//假设工作表1是工作表的名称
var datarange=sheet.getDataRange();
var lastrow=datarange.getLastRow();
var values=datarange.getValues();//获取二维数组中的所有数据
var currentDate=新日期();//今天
var monthhold=Date.now()+-30*24*3600*1000;//要更改天数,请调整“30”
对于(i=lastrow;i>=3;i--){
var tempDate=values[i-1][11];//数组的索引为0,因此row1=values[0]和col12=[11]

如果((tempDate!=“”)和(tempDate您当前的代码有什么问题?您的问题是什么?非常好,感谢您关于发布问题的建议。我今年16岁,刚刚来到这个论坛,仍在学习Java,非常高兴您能提供帮助,非常感谢。深入了解代码所做的工作,它还删除了L列中的空行,这反过来也是未完成的已删除订单,并且工作表在整个工作场所中用作参考,如果您仍然愿意帮助,我可以发送一个链接来编辑工作表。我的错。不是第12行的
tempDate!=NaN
,而是
tempDate!=“”
。这应该可以防止删除空白。您知道如何返回到以前的版本以恢复已删除的行吗?现在效果很好,我在意识到旧版本删除的行比预期的多的几分钟内恢复了旧版本。再次感谢您所做的一切!非常好!请接受答案,以便其他人可以看到问题得到了回答。
function DeleteOldEntries() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Live Events");//assumes Live Events is the name of the sheet
var datarange = sheet.getDataRange();
var lastrow = datarange.getLastRow();
var values = datarange.getValues();// get all data in a 2D array

var currentDate = new Date();//today
var monthOld = Date.now() + -30*24*3600*1000; 
for (i=lastrow;i>=3;i--) {
var tempDate = values[i-1][11];// arrays are 0 indexed so row1 = 
values[0] and col12 = [11]
if ((tempDate!=NaN) && (tempDate <= (monthOld)))
{
  sheet.deleteRow(i);
}
}
}
function DeleteOldEntries() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");//assumes Sheet 1 is the name of the sheet
var datarange = sheet.getDataRange();
var lastrow = datarange.getLastRow();
var values = datarange.getValues();// get all data in a 2D array

var currentDate = new Date();//today
var monthOld = Date.now() + -30*24*3600*1000; //to change amount of days adjust "30"
for (i=lastrow;i>=3;i--) {
var tempDate = values[i-1][11];// arrays are 0 indexed so row1 = values[0] and col12 = [11]
if ((tempDate!="") && (tempDate <= (monthOld)))
{
  sheet.deleteRow(i);
}
}
}