Скрипт гугл листов - массовый поиск и замена - PullRequest
0 голосов
/ 04 мая 2018

Я немного изменил сценарий, размещенный здесь здесь , чтобы удовлетворить мои потребности. Он работал очень хорошо по большей части, просматривая список из более чем 4500 записей и заменяя его на основе списка перекрестных ссылок длиной 187.

  function replMyText(){
  var ss=SpreadsheetApp.getActive();
  var sh1=ss.getSheetByName('summary');
  var sh2=ss.getSheetByName('Dashboard');
  var rgtxt=sh1.getRange('A7:A4934');//text to replace
  var rgrep=sh2.getRange('K2:L188');//replacement table
  var txtA=rgtxt.getValues();
  var repA=rgrep.getValues();
  for(var i=0;i<txtA.length;i++){
    for(var j=0;j<repA.length;j++){
      if(txtA[i][0]==repA[j][0]){
        txtA[i][0]=repA[j][1];
      }
    }
  }
  rgtxt.setValues(txtA);
}

Однако есть 17 предметов, которые не были заменены. Ошибка, которую я вижу на странице скрипта: «Элемент уже существует». Я не вижу никакой разницы в этих 17 значениях по сравнению с уже замененными. Может ли кто-нибудь дать некоторые указания относительно того, на что ссылается ошибка?

Edit: в ответ на 1-й комментарий, да, было бы удобно иметь номер строки, но не было дано ничего подобного. Вот скриншот сообщения- enter image description here

... и вот внешняя ссылка старого элемента / нового элемента. Список был сокращен, поскольку все удачные замены были удалены.

enter image description here

Стенограмма выполнения выглядит следующим образом - enter image description here enter image description here

Извините, что не предоставил больше данных заранее.

1 Ответ

0 голосов
/ 08 мая 2018

Оказывается, проблема не в скрипте. Возвращаемая ошибка на самом деле является «указанной» ошибкой на листе, где значения заменяются. В этом конкретном столбце была установлена ​​проверка данных, чтобы проверить и попытаться предотвратить ввод повторяющихся значений. Это было сообщение об ошибке, которое было возвращено. Когда я приостановил проверку данных, скрипт завершился без ошибок.

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