在多个Google工作表中搜索和替换单元格值的一部分的脚本

时间:2018-08-24 20:05:53

标签: search replace google-sheets

我已经在Stack Overflow上尝试了各种Google脚本,并试图在脚本编辑器中对其进行修改而没有成功。

我有一个名为'17 -18-hours'的文件夹,其中包含多个gsheet,这些gsheet从一个主表中导入数据(假设ID为'2018-12345678910')。对于2018-19年,我将文件夹复制并将其重命名为“ 18-19小时”。我复制并重命名母版纸。假设其ID现在为'2019-12345678910'。

我正在寻找一个脚本,该脚本将搜索“ 18-19小时”文件夹中的所有gsheet,并扫描所有单元格中的公式以查找“ 2018-12345678910”,并将其替换为“ 2019-12345678910”。如果有任何建议,我将不胜感激。

以下是我尝试失败的示例:

function myFunction() {
  var files = DriveApp.getFolderById("ID12345678910").getFiles();
  while (files.hasNext()) {
    var file = files.next();
    Logger.log(file.getName());
    var Sheet = SpreadsheetApp.openById(file.getId());
    var SheetString = Sheet.toString().replace("2018-12345678910", "2019-12345678910");
  }
  Logger.log("Done")
}

也尝试过:

function myFunction() {
  var files = DriveApp.getFolderById("ID12345678910").getFiles();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getActiveSheet();
  var r = s.getDataRange();
  var vlst = r.getValues();
  var i, j, a, find, repl;
  find = "2018-12345678910";
  repl = "2019-12345678910";
  for (i in vlst) {
    for (j in vlst[i]) {
      a = vlst[i][j];
      if (a == find) vlst[i][j] = repl;
    }
  }
  r.setValues(vlst);
}

0 个答案:

没有答案