谷歌工作表增加选定的单元格

时间:2021-05-09 15:10:42

标签: google-apps-script google-sheets

我将如何编写一个增加所选单元格的脚本。这是用于增加一个选定单元格的代码。单元格将始终包含自然数。

function increment() {
  
  var currentCell = SpreadsheetApp.getCurrentCell();
  var value = currentCell.getValue();
  currentCell.setValue(value+1);

}

如果可能的话,我想要这样的东西

function increment(){
  var selectedCells = SpreadsheetApp.getSelectedCells();
  selectedCells.forEach( (e) => {
    e.setValue(e.getValue() + 1 );
  });

}

1 个答案:

答案 0 :(得分:1)

选择不需要是连续的,因此要以通用方式实现这一点,您必须迭代 RangeList 对象并使用 range.getValues()

getValues() 调用将返回一个二维数组。迭代数组中的值的一种简单方法是使用 map.map 模式。试试这个:

function increment() {
  SpreadsheetApp.getActiveRangeList()
    .getRanges().forEach(range => {
      const values = range.getValues()
        .map(row => row
          .map(value => (Number(value) || 0) + 1)
        );
      range.setValues(values);
    });
}