У меня проблема с этим скриптом, когда он заменяет весь текст. Смотрите здесь . Текст внутри ячеек - либо = # ОШИБКА! или = # ИМЯ? и ошибка возвращается как Неизвестное имя диапазона. Как я могу получить его, чтобы заменить только конкретную строку текста? Только T, A, R и т. Д., А не каждое слово, содержащее эти буквы.
function runReplaceInSheet(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Underlevel");
// get the current data range values as an array
// Fewer calls to access the sheet -> lower overhead
var values = sheet.getDataRange().getValues();
var range = sheet.getDataRange();
var replaceObj = {
//to_replace: imgur id
T: 'Dxl893F',
A: 'omc7F9l',
R: '12ZmSp3',
M: 'kh7RqBD',
H: 'u0O7fsS',
F: 'Hbs3TuP',
};
var regex = new RegExp('^(' + Object.keys(replaceObj).join('|') + ')$', 'g');// /^(T|A|R|M|H|F)$/
function replacer(match) {
return '=image("https://i.imgur.com/' + replaceObj[match] + '.png")';
}
var data = range.getValues();
range.setFormulas(
range.getFormulas().map(function(e, i) {//i=index of row(e)
return e.map(function(f, j) {//j = index of column(f)
return f === "" ? data[i][j].toString().replace(regex, replacer) : f;
});
})
);
}
@ Tanaike