如果任何单元格为空,则删除整行

时间:2014-08-14 22:44:03

标签: google-apps-script

就像标题所说的那样。如果一列是空白的,我找到了一个解决方案,但如果有空白则没有找到。

我在另一篇文章的帮助下制作了这个,虽然我没有线索:谷歌脚本。

function onEdit(e) {


 //Logger.log(JSON.stringify(e)); 
  //{"source":{},"range":{"rowStart":1,"rowEnd":1,"columnEnd":1,"columnStart":1},"value":"1","user":{"email":"","nickname":""},"authMode":{}}
  try {
    var ss = e.source; // Just pull the spreadsheet object from the one already being passed to onEdit
    var s = ss.getActiveSheet();

    // Conditions are by sheet and a single cell in a certain column
    if (s.getName() == 'Sheet1' &&  // change to your own 
        e.range.columnStart == 1 && e.range.columnEnd == 99 &&  // only look at edits happening in col C which is 3
        e.range.rowStart == e.range.rowEnd ) {  // only look at single row edits which will equal a single cell
      checkCellValue(e); 
    }
  } catch (error) { Logger.log(error); }
};

function checkCellValue(e) {
  if ( !e.value || e.value == 0) {  // Delete if value is zero or empty
    e.source.getActiveSheet().deleteRow(e.range.rowStart);
  }
}

问题是,我不知道如何实际“使用”它

2 个答案:

答案 0 :(得分:1)

Demo设置。

在这种情况下,

e.range.columnStarte.range.columnEnd需要彼此相等

答案 1 :(得分:0)

在您要使用此功能的电子表格中,单击“工具”菜单中的“脚本编辑器”。在出现的对话框中选择Blank Project,然后使用您在上面发布的代码替换窗口中的代码。保存并命名项目,然后单击“资源”菜单中的“当前项目的触发器”。单击链接以添加新触发器。您将看到一系列下拉框,选择函数(onEdit()),From Spreadsheet(事件源)和“On Edit”(事件)。您可以选择设置失败通知。单击“保存”以保存触发器。系统将提示您提供授权,一旦执行,脚本应按预期运行。