如果单元格为空,则过滤或删除行

时间:2015-06-25 21:16:04

标签: google-apps-script google-sheets

我希望有办法检查特定列上的单元格,看它是否为空。如果它实际上是空的,请过滤或删除该行。

我尝试使用类似问题的代码而没有成功,因为似乎有多种方法可以做到。

到目前为止我所理解的是我需要定义通常的值:

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Ordering"); // The particular sheet I'm using
var rows = ss.getDataRange(); // I assume this counts the rows?
var columntocheck = ss.getRange(1, 7, rows); // This defines the column I want to check for empty cells
var values = rows.getValues(); // Define value of the row to be checked?

这是我不确定如何进入下一步的地方。我看到大多数人使用for循环来检查每一行的数据长度或者#34;"或" 0"。

会感激任何提示。

1 个答案:

答案 0 :(得分:0)

如果工作表格式(颜色,字体等)不重要,您可以使用这种快速有效的方法(它将清除整个工作表并重新填充您选择的列中具有非空单元格的数据):< / p>

function deleteEmptyRows(){ 
  var sh = SpreadsheetApp.getActiveSheet();
  var data = sh.getDataRange().getValues();
  var colNum = 0;// choose the column to check : 0=A, 1=B, 2=C etc... 
  var targetData = new Array();
  for(n=0;n<data.length;++n){
    if(data[n][colNum]!=''){ targetData.push(data[n])};// check the cell for "not empty" (does not detect formulas !!)
  }
  sh.getDataRange().clear();
  sh.getRange(1,1,targetData.length,targetData[0].length).setValues(targetData);
}