我设法运行下面的脚本,以清除D列中具有“ book”值的单元格,但是我想清除这些单元格所属的整行。我该如何修改?我不想使用deleteRow()
,因为它会减少工作表的行数。
function Remove() {
var returnSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('xxx');
var rowCount = returnSheet.getLastRow();
for (i = rowCount; i > 0; i--) {
var rrCell = 'D' + i;
var cell = returnSheet.getRange(rrCell).getValue();
var range = returnSheet.getRange(rrCell);
if (cell == 'book' ){
range.clearContent();
}
}
}
答案 0 :(得分:0)
替换
var range = returnSheet.getRange(rrCell);
使用
var range = returnSheet.getRange(i, 1, 1, returnSheet.getMaxColumns());
// getRange(startRow, startColumn, numberOfRows, numberOfColumns)
这就是我编写您的函数的方式。 这样,电子表格只有几个调用,而不是每行几个。 :)
function Remove() {
var sheet = SpreadsheetApp.getActive().getSheetByName('xxx');
var rangeList = [];
var data = sheet.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {
if (data[i][3] == 'book') {
// Arrays are zero-based. The first element is
// element 0, the second is element 1, etc.
// D is the fourth column, therefore it's element 3.
rangeList.push('A' + i + ':Z' + i);
// Change Z to your last column
}
}
sheet.getRangeList(rangeList).clearContent();
}