google-apps-script - 在结合明确范围的谷歌工作表中搜索工作表名称时使用 wildcard。 GApp 脚本

我需要帮助,因为我真的是这个编码方面的新手。

我有一个包含很多工作表的电子表格,擦除每个选项卡需要做很多工作。

我在这里看到了一个帖子,并试图适应我的需求,但它不起作用。

我需要:清除每个工作表中名为“Cicle”的文本范围。

从第 1 周期到第 15 周期,我有 15 张纸。

我需要从每个 cicle 中清除 B5:D15 和 B20:D35 和 F5:F35 的范围。我有一个垃圾桶的图像图标,我将脚本分配给这个图标。

这是我得到的:

function clearTextCicle() {
  var sourceSS = SpreadsheetApp.getActive().find(sheet =>
    sheet.getName().includes("'Cicle'"))
      sheet.getRange('B5:B15').clearContent();
      sheet.getRange('F5:F15').clearContent();
}

感谢您的关注和任何帮助!

回答1

在您的情况下,如何进行以下修改?

修改后的脚本:

function clearTextCicle() {
  var search = "Cicle";
  var len = search.length;
  var ss = SpreadsheetApp.getActive();
  var sheets = ss.getSheets().filter(s => s.getName().slice( 0, len ) == search);
  if (sheets.length == 0) return;
  sheets.forEach(s => s.getRangeList(['B5:B15', 'F5:F15']).clearContent());
}
  • 在此修改中,特定工作表名称的工作表如 Cicle## 使用 filter。并且,使用范围列表清除了 2 个范围。

  • 在这种情况下,我认为您也可以使用 var sheets = ss.getSheets().filter(s => /Cicle\d+/.test(s.getName())); 代替 var sheets = ss.getSheets().filter(s => s.getName().slice( 0, len ) == search);

参考:

相似文章

最新文章