Google Apps 脚本 - 如果今天的日期晚于输入日期,则删除一行
Google Apps Script - deleting a row if today's date is past input date
我想制作一个脚本,将一行中的日期与今天的日期进行比较,如果今天的日期是粘贴日期行,则删除该行。
这是我当前的脚本:
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
}
}
}
最终目标是将 C 列中的日期与今天的日期进行比较,如果今天的日期更大,则删除该特定行。
现在当我 运行 脚本时,它删除了一些行,但不是特别是早于今天日期的行。
这个脚本的开头是based off another Whosebug post
当你从上到下开始迭代时,在迭代中删除行改变下一行的偏移量(实际行号)
上面的问题可以使用从下到上开始迭代来解决。
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
}
}
}
我想制作一个脚本,将一行中的日期与今天的日期进行比较,如果今天的日期是粘贴日期行,则删除该行。
这是我当前的脚本:
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
}
}
}
最终目标是将 C 列中的日期与今天的日期进行比较,如果今天的日期更大,则删除该特定行。
现在当我 运行 脚本时,它删除了一些行,但不是特别是早于今天日期的行。
这个脚本的开头是based off another Whosebug post
当你从上到下开始迭代时,在迭代中删除行改变下一行的偏移量(实际行号)
上面的问题可以使用从下到上开始迭代来解决。
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
}
}
}