(Google shee脚本)清除特定细胞



我的任务是对我们的工作表进行更新。该脚本需要根据另一个单元格的值来清除某些单元格。我设法找到了一个删除整个必需行的脚本,但是导致文档其余部分引起问题。

   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++;
    }
  }
};

感谢您的想法!

最新更新