如果两个对应的单元格匹配,则删除行

时间:2019-05-15 22:05:02

标签: google-apps-script google-sheets

在我的Google工作表文件中,sheet2被用作黑名单,其中colA =名称,colB =将其列入黑名单的日期,colC =将其从黑名单中删除的日期(colB中的值后3个月)。 Sheet1记录了注册表单的响应。

我想要一个脚本,它将在colC日期之后自动删除名称。也许一个脚本可以在两个单元格匹配的情况下删除整行。例如,如果B2和C2相等,则删除第2行。这将适用于每一行。

任何帮助将不胜感激。非常感谢。

1 个答案:

答案 0 :(得分:0)

并没有立即清除您要从中删除名称的表。我的答案假设您要从黑名单工作表sheet2中删除该名称。

var ss = SpreadsheetApp.getActiveSpreadsheet ();
var sheet2 = ss.getSheetByName ("sheet2");
var values = sheet2.getDataRange ().getValues ();

var day = 24*3600*1000;  
var today = parseInt ((new Date ().setHours (0,0,0,0))/day); 
var ssdate; // Date to check, spreadsheet date

// Start at the bottom and move up the file, since all rows will shit up when deleted
for (var i = values.length; i >= 0; i--)
{
    try
    {
      ssdate = values[i][2].getTime () / day; // 2 is for the C column (0 is for the A column)
    }
    catch (e) {ssdate = null;}

    // Testing that the date is today or later to remove from file
    if (ssdate && Math.floor (ssdate) >= today)
    {
      sheet2.deleteRow (i + 1); // Removes name from blacklist.
                                // i + 1, because it is the row number, which starts at 1
                                // where arrays start index at 0.
    }
}