在 google sheet 中搜索 sheet 名称并结合明确范围时使用通配符。应用程序脚本

Use wildcard when searching for sheet name in google sheets combined with clear range. GApp Script

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

我有一个包含很多 sheet 的跨页sheet,要擦除每个标签需要很多工作。

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

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

我有 15 sheets 从 Cicle 1 到 Cicle 15。

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

这是我得到的:

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

感谢您的关注和帮助!

你的情况,下面的修改怎么样?

修改后的脚本:

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());
}
  • 在此修改中,sheet 特定 sheet 名称的 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);

参考文献: