根据 Google Sheet 中的值清除行数据(特定数据)appscript

Clear Row Data Based on Value in Google Sheet ( Specific Data ) appscript

我正在寻找基于值的基础清除特定行 content/data 然后隐藏行。

在 { F Col } 中键入值“完成” { E , C Col } 的清除值

当一切都完成后隐藏行。

function ClearContentThenHideRow() {
  var s = SpreadsheetApp.getActive().getSheetByName('Main');
  s.showRows(1, s.getMaxRows());
  
  s.getRange('F:F')
    .getValues()
    .forEach( function (r, i) {
    if (r[0] == 'Done') 
      //sheet.getRange(["C:C","E:E"]).clearContent(); // clear content not working 
      s.hideRows(i + 1);
    });
}

修改点:

  • 关于sheet.getRange(["C:C","E:E"]).clearContent();
    • sheet 未声明。
    • 如果要使用范围列表,请使用getRangeList()
  • 当用s.getRange('F1:F' + s.getLastRow())代替s.getRange('F:F')时,我认为工艺成本可以降低一点。

当以上几点反映到你的脚本中,就会变成下面这样。

修改后的脚本:

function ClearContentThenHideRow() {
  var s = SpreadsheetApp.getActive().getSheetByName('Main');
  // s.showRows(1, s.getMaxRows()); <--- removed
  s.getRange('F1:F' + s.getLastRow())
    .getValues()
    .forEach(function (r, i) {
      if (r[0] == 'Done') {
        s.getRangeList(["C" + (i + 1), "E" + (i + 1)]).clearContent();
        s.hideRows(i + 1);
      }
    });
}

参考: