Недавно в службу SpreadsheetApp
был добавлен класс TextFinder
, который позволяет вам делать это на Range
(или Sheet
или даже Spreadsheet
).См. документацию для более подробной информацииПросто установите искатель в контексте с createTextFinder()
с текстом, который вы хотите найти в качестве аргумента.Вызов метода findNext()
для полученного экземпляра TextFinder
вернет либо Range
, в котором он был вызван, либо null
, если ничего не было найдено.Например:
function findText() {
var sh = getSheet(); //custom function that returns target Sheet;
var rng = sh.getRange(1,1); //change to desired Range boundaries;
//create TextFinder and configure;
var tf = rng.createTextFinder('textToFind');
tf.matchCase(false); //{Boolean} -> match target text's case or not;
tf.matchEntireCell(false); //{Boolean} -> check the whole Range or within;
tf.ignoreDiacritics(true); //{Boolean} -> ignore diacretic signs during match;
tf.matchFormulaText(false); //{Boolean} -> search in formulas (if any) or values;
//invoke search;
var res = tf.findNext();
//do something with result;
if(res!==null) {
var vals = res.getValues();
Logger.log(vals);
}
}