查找和替换单元格范围[示例脚本]

时间:2019-04-02 15:16:45

标签: javascript google-apps-script google-sheets

我有一个示例脚本,该脚本运行查找并用该脚本替换值。

我想知道我将如何适应这个现有脚本以查找一定范围的单元格,以用[[未在脚本中指定文本,而是在第二列中查找一列值来查找]注明要用什么替换]。

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

这是我可以查询到的最接近的值,但无法复制[循环不是我的强项]

Google Script 'replace' function with range

 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 :(得分:0)

尝试一下:

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

  

如果您想给我们一个例子,请向我们展示更改之前和之后的文本,并清楚是哪个。