1

我编写了 gs 脚本来清除工作表中所有单元格的数据。电子表格有很多表格(大约 200 张),我收到时间限制执行错误。也许有人有想法如何解决这个问题。这是我的代码示例。

function cleanAllOld() {

  var sheetsName = new Array();
  var destination = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/link");
  var sheets = destination.getSheets();

  for (var k = 0; k < sheets.length; k++) {

    sheetsName.push([sheets[k].getName()]);

    for (var p = 0; p < sheetsName.length; p++) {
      var sheet = destination.getSheetByName(sheetsName[p]);
      if (sheet === null) {} else {
        sheet.getDataRange().clearContent();
      }
    }
  }
}
4

2 回答 2

2

我没有得到你代码的所有部分,但我认为他太复杂了。这是一个有效的示例:

function AllDelete() {

  var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/link");
  var sheets = ss.getSheets();
  var i = 0;

  for(i in sheets){

    sheets[i].clearContents();

  }

}

编辑: Max 很快而且是正确的,getDataRange() 方法使用了大量资源

于 2017-05-11T08:18:42.607 回答
1

我认为问题在于获取数据范围。

尝试替换这个

sheet.getDataRange().clearContent();

这样:

sheet.clearContents();

于 2017-05-11T08:16:45.953 回答