使用Google Script重置范围

时间:2018-04-21 02:23:25

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

我正在尝试删除范围

中不需要的列和行

我一直收到错误Sorry, it is not possible to delete all non-frozen rows.,但只是间歇性地

从不在列上只有行

我将标题行冻结

我无法弄清楚为什么我会检查以确保我没有删除if (maxRows-lastRow > 0 && maxRows > 1)所有的行

请帮忙,这很令人沮丧

由于

function ResetRange(arrShtNames) {
  var allsheets = arrShtNames;
  for (var s in allsheets){
    var sheet= SpreadsheetApp.getActiveSpreadsheet().getSheetByName(allsheets[s]);

    var maxColumns = sheet.getMaxColumns(); 
    var lastColumn = sheet.getLastColumn();

    var maxRows = sheet.getMaxRows();
    var lastRow = sheet.getLastRow();

    if (maxColumns-lastColumn > 0 && maxColumns > 1){
      sheet.deleteColumns(lastColumn+1, maxColumns-lastColumn);
    };

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

1 个答案:

答案 0 :(得分:1)

试试这个:

我的顶行和左栏都被冻结了。

function resetRange(nA){
  //var namesA=['myPage'];
  var namesA=nA;
  var ss=SpreadsheetApp.getActive();
  if(namesA){
    for(var i=0;i<namesA.length;i++){
      var sh=ss.getSheetByName(namesA[i]);
      if(sh.getMaxColumns()>sh.getLastColumn()){
        sh.deleteColumns(sh.getLastColumn()+1,sh.getMaxColumns()-sh.getLastColumn());
      }
      if(sh.getMaxRows()>sh.getLastRow()){
        sh.deleteRows(sh.getLastRow()+1, sh.getMaxRows()-sh.getLastRow());
      } 
    }
  }
}