繁体   English   中英

即使有些工作表没有空行,也可以删除多张工作表上的行脚本

[英]Delete rows script on multiple sheets even when some don't have empty rows

我有一个脚本,每天晚上在电子表格上完成工作后删除大约 15 个工作表底部的空行。 我运行它是因为空行经常留在底部(但并非总是如此),这有助于自动清理它而我不必担心它。 当底部留下空行时,它工作得很好,但是当没有空行并且工作表一直向下充满数据时,它会给我一个错误并且不会继续到下一张工作表。 我认为这与

lastRow + 1

但我不知道如何更改它才能正常运行。 我的主要问题是,我怎样才能正常运行此代码(删除列出的工作表上的空行),但如果没有任何空行,它只会转到下一张工作表而不是抛出错误?

// DELETE EMPTY ROWS AT BOTTOM
function RemoveEmptyRows() {
  var ss = SpreadsheetApp.openById('spreadsheetId');
  var arrayOfSheetTabNames, i, L, sheet;
  arrayOfSheetTabNames = [
    "Sheet1",
    "Sheet2",
    "Sheet3",
    "Sheet4",
    "Sheet5",
    "Sheet6",
    "Sheet7",
    "Sheet8",
    "Sheet9",
    "Sheet10",  
    "Sheet11",
    "Sheet12",
    "Sheet13",
    "Sheet14",
    "Sheet15"   
  ]
  L = arrayOfSheetTabNames.length;
  for (i = 0; i < L; i++) {
    sheet = ss.getSheetByName(arrayOfSheetTabNames[i]);
    var maxRows = sheet.getMaxRows();
    var lastRow = sheet.getLastRow();
    sheet.deleteRows(lastRow + 1, maxRows - lastRow);
  }
};

感谢您的任何帮助!

  • 您要删除 15 个工作表的数据范围以下的所有空行。
  • 有几张没有空行的工作表。

如果我的理解是正确的,这个修改怎么样? 例如,在您的情况下,如何将lastRowmaxRows进行比较?

修改后的脚本:

请修改如下,然后重试。

从:
 sheet.deleteRows(lastRow + 1, maxRows - lastRow);
到:
 if (lastRow < maxRows) { sheet.deleteRows(lastRow + 1, maxRows - lastRow); }

参考:

如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM