Google apps script 谷歌应用程序脚本-如果今天';s日期超过输入日期
我想制作一个脚本,将一行中的日期与今天的日期进行比较,如果今天的日期为粘贴日期行,则删除该行 这是我当前的脚本:Google apps script 谷歌应用程序脚本-如果今天';s日期超过输入日期,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我想制作一个脚本,将一行中的日期与今天的日期进行比较,如果今天的日期为粘贴日期行,则删除该行 这是我当前的脚本: function deleteRow1() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow = 1; // First row of data to process var numRows = sheet.getLastRow()-1; // Number of rows to process va
function deleteRow1() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 1; // First row of data to process
var numRows = sheet.getLastRow()-1; // Number of rows to process
var dataRange = sheet.getRange(startRow, 2, numRows);
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i=0;i<data.length;i++) {
var row = data[i];
var date = new Date();
var sheetDate = new Date(row);
var Sdate = Utilities.formatDate(date,'GMT+0200','yyyy:MM:dd')
var SsheetDate = Utilities.formatDate(sheetDate,'GMT+0200', 'yyyy:MM:dd')
if (Sdate > SsheetDate){
sheet.deleteRow(i+2) //don't delete header
}
}
}
函数deleteRow1(){
var sheet=SpreadsheetApp.getActiveSheet();
var startRow=1;//要处理的第一行数据
var numRows=sheet.getLastRow()-1;//要处理的行数
var dataRange=sheet.getRange(startRow,2,numRows);
//获取范围中每行的值。
var data=dataRange.getValues();
对于(i=0;i表日期){
sheet.deleteRow(i+2)//不删除标题
}
}
}
最终目标是将C列中的日期与今天的日期进行比较,如果今天的日期更大,则删除该行
现在,当我运行脚本时,它会删除一些行,但并不特别是那些早于今天日期的行
当您从上到下开始迭代时,该脚本的开头是,在迭代中删除行,更改下一行的偏移量(实际行数) 上述问题可以通过从下到上的迭代来解决
for (i=data.length-1;i>=0;i--)
这是工作代码
function deleteRow1()
{
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = sheet.getLastRow()-1; // Number of rows to process
var dataRange = sheet.getRange(startRow, 2, numRows);
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i=data.length-1;i>=0;i--)
{
var row = data[i];
var date = new Date();
var sheetDate = new Date(row);
var Sdate = Utilities.formatDate(date,'GMT+0200','yyyy:MM:dd')
var SsheetDate = Utilities.formatDate(sheetDate,'GMT+0200', 'yyyy:MM:dd')
if (Sdate.valueOf() > SsheetDate.valueOf())
{
sheet.deleteRow(i+2) //don't delete header
}
}
}
谢谢,萨钦K!您的建议适用于删除行,但当我添加的日期大于今天的日期时,脚本仍将删除行。它似乎没有将行日期与今天的日期进行比较。有什么想法吗?我试过你们给出的电子表格(参考链接),效果很好。唯一的问题是它是在mm/dd/yyyy,而不是dd/mm/yyyy