Точное совпадение в скрипте Find and Replace - PullRequest
0 голосов
/ 04 июля 2019

У меня проблема с этим скриптом, когда он заменяет весь текст. Смотрите здесь . Текст внутри ячеек - либо = # ОШИБКА! или = # ИМЯ? и ошибка возвращается как Неизвестное имя диапазона. Как я могу получить его, чтобы заменить только конкретную строку текста? Только 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...