【问题标题】:Altering find and replace Google Sheets script更改查找和替换 Google 表格脚本
【发布时间】:2018-06-20 12:38:29
【问题描述】:

我有以下脚本,但我想将其更改为仅在特定工作表 (Sheet4!A:AB) 上查找和替换。

我该怎么做:

function fandr() {
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var s=ss.getActiveSheet();
  var r=s.getDataRange();
  var vlst=r.getValues();
  var i,j,a,find,repl;
  find="abc";
  repl="xyz";
  for (i in vlst) {
    for (j in vlst[i]) {
    a=vlst[i][j];
    if (a==find) vlst[i][j]=repl;
  }
 }
  r.setValues(vlst);
}

【问题讨论】:

    标签: javascript google-sheets


    【解决方案1】:

    我认为 pnuts 的评论对您的情况很有帮助。如果您仍在寻找解决方案,那么这个答案怎么样?您想查找并替换 Sheet4!A:AB 中的值。如果我的理解是正确的,我想提出 2 种模式。我认为您的情况有几种解决方案。因此,请将此视为其中之一。

    模式 1

    这个修改是一个简单的修改。它将检索值的范围修改为Sheet4!A:AB

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var r = ss.getRange("Sheet4!A:AB");
    var vlst = r.getValues();
    var i, j, a, find, repl;
    find = "abc";
    repl = "xyz";
    for (var i = 0; i < vlst.length; i++) {
      for (var j = 0; j < vlst[i].length; j++) {
        a = vlst[i][j];
        if (a == find) vlst[i][j] = repl;
      }
    }
    r.setValues(vlst);
    

    模式 2

    在模式 1 的情况下,getRange("Sheet4!A:AB") 检索到的值包括空行。由此,搜索速度变慢。所以在这个模式 2 中,使用getLastRow() 检索“A1:AB”的数据范围。

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var s = ss.getSheetByName("Sheet4");
    var r = s.getRange("A1:AB" + s.getLastRow());
    var vlst = r.getValues();
    var i, j, a, find, repl;
    find = "abc";
    repl = "xyz";
    for (var i = 0; i < vlst.length; i++) {
      for (var j = 0; j < vlst[i].length; j++) {
        a = vlst[i][j];
        if (a == find) vlst[i][j] = repl;
      }
    }
    r.setValues(vlst);
    

    参考资料:

    如果我误解了你想要什么,请告诉我。我想修改它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 2018-06-01
      相关资源
      最近更新 更多