Estoy buscando una palabra en una hoja de cálculo usando TextFinder en Google Sheets Script.
Me gustaría tener como salida el nombre de la hoja donde se encontró el texto.
Por lo general, solo habrá 1 de esta palabra clave por hoja de cálculo y seguramente solo una vez por hoja.
Si encuentra más de 1 en la hoja de cálculo, sería bueno que se devuelvan todos los nombres de las hojas.
Código:
function TestCMNDH() { var source = SpreadsheetApp.openById('SheetID'); var found = source.createTextFinder('Wordtosearch').matchCase(false).findAll(); Logger.log(found) }; Current output: [Range]¡Cualquier ayuda sería muy apreciada! ¡Gracias!
Podría hacer algo como esto para obtener un nombre de lista único de las hojas de cálculo donde se encontró el texto:
function myFunction() { var source = SpreadsheetApp.openById('SheetID'); var foundRange = source.createTextFinder('Wordtosearch').matchCase(false).findAll(); var sheetNames = foundRange.map(range => range.getSheet().getName()); var uniqSheetNames = [...new Set(sheetNames)]; uniqSheetNames.forEach(sheetName => Logger.log(sheetName)); } Lo que obtiene como resultado de la función findAll es una matriz de Range .
Puede obtener la hoja a la que pertenece esa hoja usando getSheet() , y puede obtener el nombre de esa hoja usando getName()
Así que mapeo esa matriz de Range en una matriz de nombres de hojas:
var sheetNames = foundRange.map(range => range.getSheet().getName());
La siguiente línea elimina cualquier posible duplicado y luego simplemente registra los nombres en la última línea