删除多张纸上的行脚本,即使某些表没有空行

时间:2019-02-27 21:20:57

标签: javascript google-apps-script google-sheets

我有一个脚本,每天在电子表格上完成工作后,每晚都会删除约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);
  }
};

谢谢您的帮助!

1 个答案:

答案 0 :(得分:1)

  • 您要删除15页数据范围以下的所有空行。
  • 有几张纸没有空行。

如果我的理解是正确的,那么该修改如何?例如,根据您的情况,如何将setx -m JAVA_HOME "C:\Program Files\Java\jdk1.8.0_XX"lastRow进行比较?

修改后的脚本:

请进行以下修改,然后重试。

从:
maxRows
至:
sheet.deleteRows(lastRow + 1, maxRows - lastRow);

参考文献:

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