我的任务是对我们的工作表进行更新。该脚本需要根据另一个单元格的值来清除某些单元格。我设法找到了一个删除整个必需行的脚本,但是导致文档其余部分引起问题。
function deleteRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var rowsDeleted = 0;
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
if (row[14] == '' && row[6] == 'PREBOOKED') { // This searches all cells in columns A (change to row[1] for columns B and so on) and deletes row if cell is empty or has value 'delete'.
sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};
是否可以将其修改为而不是删除行,而只是清除单元格的内容d -p?
您可以在必要时使用以下代码进行修改。
function deleteRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var values = sheet.getDataRange().getValues();
values.forEach(function(v, i) {
// get row index
var row = i+1;
// look for required values in cells
if (v[14] == '' && v[6] == 'PREBOOKED') {
// might have to modify this line based on Sheets API
sheet.getRange('D'+row+':P'+row).clearContent();
}
});
}
我能够按照以下操作做我需要的事情:
function deleteRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var rowsDeleted = 0;
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
if (row[14] == '' && row[6] == 'PREBOOKED') { // This searches all cells in columns A (change to row[1] for columns B and so on) and deletes row if cell is empty or has value 'delete'.
sheet.getRange((parseInt(i)+1), 6).clearContent();
sheet.getRange((parseInt(i)+1), 7).clearContent();
sheet.getRange((parseInt(i)+1), 10).clearContent();
sheet.getRange((parseInt(i)+1), 11).clearContent();
sheet.getRange((parseInt(i)+1), 12).clearContent();
rowsDeleted++;
}
}
};
感谢您的想法!