Google Sheets App Script使用TextFinder时获取匹配结果所在工作表名称
findAll() 方法返回的是所有匹配单元格的 Range 对象数组,直接打印该数组只会显示 [Range] 占位标识,你需要从每个Range实例中提取所属工作表的名称即可实现需求,修改后的可运行代码如下:
function TestCMNDH() { // 替换为你的电子表格ID var source = SpreadsheetApp.openById('SheetID'); // 替换为你需要搜索的目标关键词 var searchWord = 'Wordtosearch'; var foundRanges = source.createTextFinder(searchWord).matchCase(false).findAll(); var matchedSheetNames = []; // 遍历所有匹配结果提取工作表名 foundRanges.forEach(range => { var sheetName = range.getSheet().getName(); // 可选去重逻辑:同个工作表多次匹配也不会重复输出名称 if (!matchedSheetNames.includes(sheetName)) { matchedSheetNames.push(sheetName); } }); // 日志输出匹配到的工作表名称数组,无匹配时输出空数组[] Logger.log(matchedSheetNames); // 如果需要其他函数调用结果,可放开下方注释 // return matchedSheetNames; }
内容的提问来源于stack exchange,提问作者SpotyPie
相关产品推荐
相关产品推荐

