【问题标题】:Delete Row If Two Corresponding Cells Match如果两个对应的单元格匹配,则删除行
【发布时间】:2019-05-15 22:05:02
【问题描述】:

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

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

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

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    目前尚不清楚您要从哪个工作表中删除名称。我的回答假设您要从黑名单 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.
        }
    }
    

    【讨论】:

    • 非常感谢!它完美地工作!我不得不在第 21 行稍作调整,并将 ">=" 更改为 "
    猜你喜欢
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2019-06-18
    相关资源
    最近更新 更多