如何让Google Apps Script搜索脚本读取多个Sheet的数据?
Google Apps Script多Sheet搜索功能实现
可行性说明
完全可以实现多Sheet数据检索,只需调整代码逻辑,遍历指定的多个Sheet并逐一检查数据。
修改后的完整代码
// Buscar var NUM_COLUMNA_BUSQUEDA = 0; function Buscar() { var hojaActiva = SpreadsheetApp.getActiveSpreadsheet(); var formulario = hojaActiva.getSheetByName("Formulario"); // Nombre de hoja del formulario var valor = formulario.getRange("B3").getValue(); // 定义需要检索的多个Sheet名称数组 var sheetNames = ["Data", "Data2", "Data3"]; // 遍历每个目标Sheet sheetNames.forEach(function(sheetName) { var targetSheet = hojaActiva.getSheetByName(sheetName); // 检查Sheet是否存在,避免报错 if (!targetSheet) return; var valores = targetSheet.getDataRange().getValues(); for (var i = 0; i < valores.length; i++) { var fila = valores[i]; if (fila[NUM_COLUMNA_BUSQUEDA] == valor) { formulario.getRange("B6").setValue(fila[0]); formulario.getRange("B8").setValue(fila[5]); formulario.getRange("B10").setValue(fila[11]); formulario.getRange("D6").setValue(fila[14]); formulario.getRange("D8").setValue(fila[16]); formulario.getRange("D10").setValue(fila[17]); } } }); }
关键修改点
- 将原第9行的单Sheet数据获取逻辑替换为遍历指定Sheet名称数组,逐个处理每个Sheet
- 增加
targetSheet存在性检查,防止因Sheet名称拼写错误或不存在导致脚本异常终止 - 保留原有的匹配和数据填充逻辑,若多个Sheet存在相同ID,最后一个匹配的结果会覆盖之前的(若需仅保留第一个匹配项,可在找到后添加
break和return终止遍历)
内容的提问来源于stack exchange,提问作者Josué Pérez
相关产品推荐
相关产品推荐

