每次运行脚本时自动查找并替换Google表格

时间:2017-11-15 12:13:17

标签: google-apps-script

我找到了这段代码,但它没有像预期的那样工作。

    function onOpen() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("'Feuille 1'!1:1137");//This line is most likely the culprit
  var to_replace = ".";
  var replace_with = ",";
  replaceInSheet(sheet,range, to_replace, replace_with);
}

function replaceInSheet(sheet, range, to_replace, replace_with) {
  //Confirm
  var ui = SpreadsheetApp.getUi(); 
  var spread = SpreadsheetApp.getActiveSpreadsheet();

  var result = ui.alert(
     "Will update " + to_replace + " to " + replace_with + " ",
     'Are you sure you want to continue?',
      ui.ButtonSet.YES_NO);

  // Process the user's response.
  if (result == ui.Button.YES) {

    // User clicked "Yes".
    spread.toast("Will update " + to_replace + " to " + replace_with + " ", "ALERT");

    var data  = range.getValues();//I think error is occurring here

    var oldValue="";
    var newValue="";
    var cellsChanged = 0;

    for (var row=0; row<data.length; row++) {
      for (var item=0; item<data[row].length; item++) {
        oldValue = data[row][item];
        newValue = data[row][item].replace(to_replace, replace_with);
        if (oldValue!=newValue)
        {
          cellsChanged++;
          data[row][item] = newValue;
        }
      }
    }
    range.setValues(data);
    spread.toast(cellsChanged + " cells changed", "STATUS");
  }
  else {
    // User clicked "No" or X in the title bar.
    spread.toast("No action taken", "ABANDONED");
  }
}

我收到了这个错误: TypeError:Impossible d'appelerlaméthode“getValues”de undefined。 (ligne 25,fichier“Code”)

你可以帮帮我,我是个菜鸟吗? 此致

1 个答案:

答案 0 :(得分:0)

显然这条线有一个问题:

var range = sheet.getRange("'Feuille 1'!1:1137");

范围是问题,应该是'Sheet1!A1:A1137'。

所以可能会有效:var range = sheet.getRange("'Feuille 1'!A1:A1137");

由于我看不到您的表单,您必须确定适当的范围。