我打算在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