Google Sheet Apps脚本-更改单元格数据并向下增加一行

时间:2018-11-17 03:01:27

标签: google-apps-script

我正在尝试.. 1)从工作表中活动单元格的内容中替换一个子字符串,然后.. 2)将活动单元格下移一个位置,然后重复直到活动单元格值为空。这是我的功能,但是当我运行它时什么也没发生...没人知道为什么吗?

  var app = SpreadsheetApp;            
  var mySheet = ss.getSheetByName('NAME');
  var activeCell = mySheet.getActiveCell();
  var cellValue = activeCell.getValue();
  var activeRow = activeCell.getRow();

  function replaceStringInCell(){
     while(cellValue != ''){
       var newCellValue = cellValue.replace('MC/Visa/Discover', 'CC');
       activeCell.setValue(newCellValue); 
       activeRow++;
       mySheet.getRange(activeRow, 7).activate();
  }
}

1 个答案:

答案 0 :(得分:1)

问题:

  • 在每个单元格上不必要的循环

解决方案:

  • 使用批处理操作

示例脚本:

 function replaceColA() {
  var ss = SpreadsheetApp.getActive();
  var mySheet = ss.getSheetByName('NAME');
  var cellRange = mySheet.getRange('A1:A' + mySheet.getLastRow());
  var cellValues = cellRange.getValues().map(replaceStringInCell); //call replace function on all values in range
  cellRange.setValues(cellValues); //set mapped values back to range 
}
function replaceStringInCell(cellValue) {
  if (cellValue.map) {
    //if cellValue is a array
    return cellValue.map(replaceStringInCell); //recurse
  } else {
    return cellValue.replace('MC/Visa/Discover', 'CC');
  }
}

阅读: