我打算在Google表格上运行脚本

我正在做的是还原单元格的值,并使用if语句将标识符单元格与另一个userid单元格进行比较。

如果它们不同,那么我想消除整个行,如果它们相等,我想保留整个行。

我得到错误:



我的代码:

function myFunction() {
    function Lento() {
        var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
        var sheet = spreadsheet.getActiveSheet();
        var rows = sheet.getDataRange();
        var values = rows.getValues();
        var numCols = rows.getNumColumns();
        var numRows = rows.getNumRows();
        for (var r=1; r<values.length; r++) {
            var row = values[r],
                identificador = row[0],
                palabraclave = row[1],
                ciudad = row[2],
                fecha = row[4],
                pais = row[5],
                idusuario = row[6],
                nombre = row[7],
                email = row[8],
                telefono = row[9],
                mensaje = row[10],
                urllanding = row[11],
                fechausuario = row[12];

            Logger.log(identificador);
            Logger.log(palabraclave);
            Logger.log(ciudad);
            Logger.log(fecha);
            Logger.log(pais);
       }

       if (row[0] !== row[6]) {
           spreadsheet.deleteRow(row);
       }
  }

  Lento();
}

最佳答案

我认为您的问题出在spreadsheet.deleteRow(row)上。首先,您要删除此特定工作表上的行,因此应为sheet.deleteRow(...)。另一个问题是deleteRow需要一个整数作为参数,但是您提供了row,它是一个数组。要删除该行,您要做

sheet.deleteRow(r+1);

因为r是链接到数组中位置的整数,而不是row。请参阅有关deleteRow(rowPosition)的文档:

https://developers.google.com/apps-script/reference/spreadsheet/sheet#deleterowrowposition

09-15 13:43