如何在多个谷歌表单(如20个表单(中搜索单元格值,如果找到,则更新该值。例如,在第17张纸上(它可以是任何一张纸,它必须是动态的(,我需要搜索某个值,我该怎么做?谢谢大家。
您应该在Sheet
上使用类TextFinder
和方法createTextFinder()
。另外,使用getSheets()
获取给定电子表格的所有表格。
这里有一个函数,它将搜索给定字符串的所有出现,并用另一个给定字符串替换。
/**
* Search and replace a string with another string.
* @param {string} searchTerm term to search for in all sheets
* @param {string} replaceTerm term to replace all occurences of the search term with
* @returns number of occurrences replaced
*/
function searchAndReplaceAllSheets(searchTerm, replaceTerm) {
// get all sheets in your Spreadsheet
const sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
let totalReplaced = 0;
// Loop over all sheets
sheets.forEach((sheet) => {
// create instance of TextFinder
const noReplacedElements = sheet
.createTextFinder(searchTerm) // create text finder
.matchCase(false) // case-insensitive
.replaceAllWith(replaceTerm); // replace-all values that contain the search term with the new value
totalReplaced += noReplacedElements;
});
Logger.log(
`Replaced ${totalReplaced} occurences of ${searchTerm} with ${replaceTerm} in ${sheets.length} sheets`
);
return totalReplaced;
}
注意:我没有测试这个,但它应该可以工作。