Я хочу создать функцию в Google Sheets, которая проходит по массиву, находит строку и заменяет текст строки новым значением. У меня есть код, который работает, но он заменяет текст только в том случае, если в ячейке содержится ТОЛЬКО строка (ie Поиск "офис" заменить на "Офис" работает только в том случае, если в ячейке содержится только "офис). Я хочу иметь возможность заменить "office" с "Office", даже если ячейка содержит "office 867". Ниже приведен код, который работает. Кроме того, как я могу получить функцию для поиска в столбце A, строке 1 во что угодно? На данный момент функция находит только и заменяет, если значения находятся в B2, независимо от того, (ie первый столбец A не ищется, а первая строка каждой другой строки не ищется. Функция работает на B2 с любым, но не будет работать на B1, C1, D1 , и т. д. c. Я знаю, что это из-за переменной searchRange, но я не могу понять, как установить параметры, чтобы он искал весь лист (ie все столбцы и все строки). Так вот код, который я до сих пор. У меня есть вопросы в коде как комментарии:
// This code works but ONLY if entire cell matches the string being searched for
// I want to search for all cells that contain the string even if other text is present
// So if cell contains "office 98" I want to change that to "Office 98"
// If cell contains "blg 78" I want to change that to "Building 78"
// If cell contains "space 9876" I want to change that to "Space 9876"
// Also, how do I change the var searchRange so that the range is the entire sheet?
var ui = SpreadsheetApp.getUi();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var rangeData = sheet.getDataRange();
var lastColumn = rangeData.getLastColumn();
var lastRow = rangeData.getLastRow();
var searchRange = sheet.getRange(2,2, lastRow-1, lastColumn-1);
function findReplace() {
var rangeValues = searchRange.getValues();
for ( i = 0; i < lastColumn - 1; i++){
for ( j = 0 ; j < lastRow - 1; j++){
if(rangeValues[j][i] === "office"){
sheet.getRange(j+2,i+2).setValue("Office");
}else if (rangeValues[j][i] === "blg"){
sheet.getRange(j+2,i+2).setValue("Building");
}else if (rangeValues[j][i] === "space"){
sheet.getRange(j+2,i+2).setValue("Space");
};
};
};
};