在 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);
。
参考文献:
我需要帮助,因为我是编码方面的新手。
我有一个包含很多 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);
。