Найти и заменить диапазон ячеек [Пример скрипта] - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть пример сценария, выполняющего поиск и замену значений сценарием.

Мне интересно, как мне нужно будет адаптировать этот существующий сценарий, чтобы найти диапазон ячеек, чтобы заменить текст на [не указывая текст в сценарии, а просматривая вместо него столбец значений со вторым столбцом отмечая, что заменить его].

https://docs.google.com/spreadsheets/d/1zmY48XQT_esYji58pMbk7oJy6Vncr0Oh5urJiK3ka4U/edit#gid=0

Это самое близкое, что я мог оштрафовать к своему запросу, но я не могу реплицировать [петли не являются моей сильной стороной]

Функция Google Script «заменить» диапазоном

 function runReplaceInSheet(){
      var sheet = 
      SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
      //  get the current data range values as an array
      //  Fewer calls to access the sheet -> lower overhead 
      var values = sheet.getDataRange().getValues();  

      // Replace Staff Names
      replaceInSheet(values, 'This is a sentence.', 'This is a word');
      replaceInSheet(values, 'Hello my name is', 'Your name is');
      replaceInSheet(values, '.', '-');
      replaceInSheet(values, '!', '.');
      replaceInSheet(values, 'Bob', 'Sagget');

      // Write all updated values to the sheet, at once
      sheet.getDataRange().setValues(values);
    }

    function replaceInSheet(values, to_replace, replace_with) {
      //loop over the rows in the array
      for(var row in values){
      //use Array.map to execute a replace call on each of the cells in the 
      row.
      var replaced_values = values[row].map(function(original_value) {
      return original_value.toString().replace(to_replace,replace_with);
    });

    //replace the original row values with the replaced values
      values[row] = replaced_values;
      }
    }

Я бы хотел, чтобы скрипт нашел содержимое в ячейках D21: D23 по всему листу и заменил любой экземпляр на E21: E23

1 Ответ

0 голосов
/ 02 апреля 2019

Попробуйте:

function findAndReplaceOnAllSheets() {
  var ss=SpreadsheetApp.getActive();
  var shts=ss.getSheets();
  for(var i=0;i<shts.length;i++) {
    shts[i].getRange('D21:D23').setValues(shts[i].getRange('E21:E23').getValues());
  }
}

Наверное, я не понимаю вашего вопроса.

Что все это значит?

enter image description here

Если вы хотите привести нам пример, покажите нам текст до изменения и после изменения и уточните, что есть что.

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