在row1 google sheet功能上查找和替换

时间:2018-01-01 23:14:35

标签: google-apps-script google-sheets

对此非常新,我正在尝试仅在第1行上查找和替换

我想找到aa并将其替换为ZZZ

我正在尝试两种不同的方式,但两种方法都没有工作

由于

第一种方式:

function replace3() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var lc = sheet.getMaxColumns();
 var range = sheet.getRange("a1:z1");
 var values = range.getValues();

 for (var col in values[1]) {
   if (values[0][col] ='aa') {
      values[0][col] = 'ZZZ';
   }
 }
 range.setValues(values);
}

第二种方式:

function replace2() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var lc = sheet.getMaxColumns();
 var range = sheetname.getRange(1, 1, 1, lc);
 var values = range.getValues();
   for (var i = 0; i <= lc; i++) {
      if (values[0][i] ='aa') {
        values[0][i] = 'ZZZ';
      }
  }
 range.setValues(values);
}

1 个答案:

答案 0 :(得分:1)

以下修改方法如何?

对于replace3()

  • 数组索引从0开始。
  • if比较值时,请使用==

修改后的脚本:

function replace3() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var lc = sheet.getMaxColumns();
 var range = sheet.getRange("a1:z1");
 var values = range.getValues();

 for (var col in values[0]) { // Modified
   if (values[0][col] =='aa') { // Modified
      values[0][col] = 'ZZZ';
   }
 }
 range.setValues(values);
}

对于replace2()

  • sheetname未声明。
  • if比较值时,请使用==

修改后的脚本:

function replace2() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var lc = sheet.getMaxColumns();
 var range = sheet.getRange(1, 1, 1, lc); // Modified
 var values = range.getValues();
 for (var i = 0; i <= lc; i++) {
   if (values[0][i] == 'aa') { // Modified
     values[0][i] = 'ZZZ';
   }
 }
 range.setValues(values);
}

其他方法:

您也可以使用map()来实现它。

示例脚本:

function sample() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var range = sheet.getRange("a1:z1");
 var values = range.getValues();
 var data = values[0].map(function(e){return e == 'aa' ? 'ZZZ' : e});
 range.setValues([data]);
}

如果我误解了你的问题,请告诉我。我想修改。