如何用Apps Script删除Google Sheet中含指定文本的NamedRange
修复删除包含"campaigns"的命名范围代码
问题根源
你的代码执行无效,是因为map(x => x.getName())把NamedRange对象转换成了字符串(命名范围的名称),而字符串并没有remove()方法,导致后续的forEach循环无法执行删除操作。
正确代码
直接对筛选后的NamedRange对象执行删除,无需转换为名称字符串:
function removeNamedRanges(){ // 获取当前工作表中所有名称含"campaigns"的NamedRange对象 var namedRanges = SpreadsheetApp.getActiveSpreadsheet() .getActiveSheet() .getNamedRanges() .filter(range => range.getName().includes('campaigns')); // 遍历删除每个符合条件的命名范围 namedRanges.forEach(range => range.remove()); }
扩展说明
如果需要删除整个表格(而非仅当前工作表)中含"campaigns"的命名范围,修改获取命名范围的方式即可:
function removeAllCampaignsNamedRanges(){ var namedRanges = SpreadsheetApp.getActiveSpreadsheet() .getNamedRanges() .filter(range => range.getName().includes('campaigns')); namedRanges.forEach(range => range.remove()); }
内容的提问来源于stack exchange,提问作者Karim
相关产品推荐
相关产品推荐

