如何在当前工作表外的所有工作表中搜索值并返回布尔值?
修改后的搜索函数(覆盖所有非Sheet1工作表)
原代码仅在当前活动工作表内搜索,要实现遍历除Sheet1外的所有工作表并判断值是否存在,可按以下方式修改:
function searchForNumber(value) { const ss = SpreadsheetApp.getActiveSpreadsheet(); // 获取所有工作表,排除"Sheet1" const targetSheets = ss.getSheets().filter(sheet => sheet.getName() !== "Sheet1"); // 逐个遍历目标工作表进行搜索 for (const sheet of targetSheets) { const match = sheet.createTextFinder(String(value)) .matchEntireCell(true) .findNext(); // 找到匹配项立即返回true if (match) return true; } // 所有工作表搜索完毕未找到匹配,返回false return false; }
关键改动说明
- 用
getSheets()获取当前表格的所有工作表,再通过filter方法排除Sheet1,得到需要搜索的目标工作表列表 - 循环遍历每个目标工作表,在单个工作表的范围内创建
TextFinder进行搜索(原代码未指定范围,默认仅搜索当前活动表) - 一旦在某个工作表中找到匹配项,立即返回
true以提升效率;若所有工作表都搜索完成仍无匹配,则返回false
内容的提问来源于stack exchange,提问作者Robert Softley Gale
相关产品推荐
相关产品推荐

