javascript - 清除多个工作表中的多个范围

标签 javascript google-apps-script google-sheets

我需要运行一个脚本,该脚本将遍历我的所有工作表(最后几张工作表除外)并清除其中多个范围的内容。

下面的代码可以工作,但是速度非常慢,这会导致超时错误。

我已尽我所能地四处寻找如何缩短或加快速度。据我有限的了解,它已经相当简短了。

我在这里错过了一个技巧吗?

  function clearranges() {
var ss = SpreadsheetApp.getActive();
var allsheets = ss.getSheets();

for(var i = 0; i < 46; i++){
var sheet=allsheets[i]

 sheet.getRange('D5:AH12').clearContent();
 sheet.getRange('A14:A33').clearContent();
 sheet.getRange('D14:AH33').clearContent();
 sheet.getRange('A9').clearContent();
 sheet.getRange('B5:B12').clearContent();

}
}

最佳答案

解决办法如下:

function clearrangeX() {
  var ss = SpreadsheetApp.getActive();
  var allsheets = ss.getSheets();

  for (var i = 0; i < 46; i++) {
    var sheet = allsheets[i]

    sheet.getRange(9, 1, 1, 1).clearContent();
    sheet.getRange(14, 1, 20, 1).clearContent();
    sheet.getRange(5, 2, 8, 1).clearContent();
    sheet.getRange(5, 4, 8, 31).clearContent();
    sheet.getRange(14, 4, 20, 31).clearContent();


  }
}

不要使用 A1 表示法,而是用索引行表示法替换代码,其中第一个值是要开始的行,第二个值是要开始的列,第三个值是要处理的行数,第四个值是数字要处理的列数。

这将运行时间从 >360 秒缩短到了 0.981 秒!

关于javascript - 清除多个工作表中的多个范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33779408/

相关文章:

javascript - 谷歌应用脚​​本: Time Driven Triggers timezone issue

google-sheets - 通过 API 调用使用 RGBA 颜色格式化单元格

regex - 如何使用正则表达式将条件格式规则应用于整行

javascript - '在 javascript 中调用 getElementById 时出现 TypeError : element is null'.

javascript - AJAX 调用返回数据但失败

javascript - WebRTC连接随机无音频输出

if-statement - 根据所选选项增加 2 个不同的 ID

c# - Visual Studio Razor 页面错误语法错误

authentication - 由 Google Script 提供支持的网络应用程序的 Authorized Javascript Origin 是什么?

google-apps-script - 从 Google 电子表格中的纯文本单元格中删除的字符串在 ISBLANK 函数中产生 TRUE