通过脚本从电子表格中删除空行

时间:2020-01-09 22:50:05

标签: google-apps-script google-sheets

__CityFeed_allCities_connection

激活脚本时,它返回一条错误消息:

这些行超出范围(第5行)

我的电子表格:
enter image description here

2 个答案:

答案 0 :(得分:1)

function removeEmptyRows(){
  var sh = SpreadsheetApp.getActiveSheet();
  if(sh.getLastRow()<sh.getMaxRows()) {
    sh.deleteRows(sh.getLastRow()+1, sh.getMaxRows()-sh.getLastRow());
  }
}

答案 1 :(得分:1)

对于您而言,我认为当maxRows-lastRow为0或小于0时​​,会发生这种错误。因此,请确认工作表底部是否有这些值。如果工作表底行没有值,可以提供样本电子表格来复制问题吗?我想确认一下。

作为避免错误的修改点,接下来的修改如何?

发件人:

sh.deleteRows(lastRow+1, maxRows-lastRow);

收件人:

if (maxRows-lastRow > 0) {
  sh.deleteRows(lastRow+1, maxRows-lastRow);
}

其他模式:

或者,如下所述如何使用第一行中的数据区域删除空行?

function removeEmptyRows(){
  var sh = SpreadsheetApp.getActiveSheet();
  var lastRowOfDataRegion = sh.getRange("1:1").getDataRegion(SpreadsheetApp.Dimension.ROWS).getLastRow();
  var maxRows = sh.getMaxRows(); 
  if (maxRows-lastRowOfDataRegion > 0) {
    sh.deleteRows(lastRowOfDataRegion+1, maxRows-lastRowOfDataRegion);
  }
}

参考:

如果我误解了你的问题,我表示歉意。