【问题标题】:Deleting empty rows with Checkboxes使用复选框删除空行
【发布时间】:2020-05-09 23:24:16
【问题描述】:

我之前曾问过一个问题,要删除表格中的空行,@Cooper 帮助我得到了答案并且工作得很好。

Empty Rows in between

我得到的脚本是;

  `const ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Potential Matrix");
  const rg=ss.getDataRange();
  const vs=rg.getValues();
  let d=0;
  vs.forEach(function(r,i){if(r.join('').length==0) {ss.deleteRow(i+1-d++);}});
  ss.insertRowBefore(1).getRange("1:1").clearFormat(); 

我想知道是否有人知道如何稍微调整此脚本以考虑未选中的复选框?

New Picture for reference

【问题讨论】:

  • 你在问什么?请出示一张工作表的图片。

标签: google-apps-script google-sheets


【解决方案1】:

试试这个:

  const ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Potential Matrix");
  const rg=ss.getDataRange();
  const vs=rg.getValues();
  let d=0;
  vs.forEach(function(r,i){
    if(r.join('').length==0 || r.join('')=='false') {
      ss.deleteRow(i+1-d++);
    }
  });
  ss.insertRowBefore(1).getRange("1:1").clearFormat(); 

【讨论】:

  • 嗨@Cooper,谢谢。它似乎没有将数字 12、13 和 14 之间的行计算为空白,因此不会删除它们。你给我的原始脚本在我没有复选框时工作,但现在有复选框它不起作用。有什么方法可以删除行,包括未勾选的复选框和空数据?我在原始帖子中添加了“新图片供参考”以说明我的意思
  • @SheaMurphy,只需将if 条件更改为:if(r.join('').length==0 || r.join('')=='false' || r.join('')=='true')
猜你喜欢
  • 2014-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多