Как получить значение приращения каждой отмеченной ячейки по одному в Google Script - PullRequest
1 голос
/ 18 октября 2019

У меня есть таблица с числами, разбросанными по нескольким столбцам и строкам. Я хотел бы иметь возможность выбрать несколько ячеек в электронной таблице и увеличить значение для каждой ячейки на 1.

Я уже создал кнопку, которая вызывает функцию в скриптах. Я также могу получить свои диапазоны следующим образом:

var sel = SpreadsheetApp.getActive().getSelection().getActiveRangeList().getRanges();

Я могу циклически проходить по моим диапазонам, но я не могу получить значение каждой отдельной ячейки и увеличить ее значение. Как это можно сделать?

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Внутри цикла, проходящего через диапазоны, вы можете просто получить текущее значение в ячейке и снова установить значение + 1. Это самый простой способ сделать это, но он не может быть оптимальным.

  for(var i in sel){
    var range = sel[i].getValue();
    sel[i].setValue(range + 1);
  }
0 голосов
/ 18 октября 2019

getRanges() - это функция, которая возвращает список диапазонов. Чтобы увеличить все значения, вы должны:

  1. Итерация по диапазонам
  2. Итерация по каждой ячейке в диапазоне, используя либо getCell(), либо getValues() (чтобыстрее).

Вы можете увидеть пример кода, как это сделать, используя getValues():

var sel = SpreadsheetApp.getActive().getSelection().getActiveRangeList().getRanges();
for (var i=0; i<sel.length; i++) {
  var range = sel[i];
  var values = range.getValues();
  for (var j=0; j<values.length; j++) {
    for (var k=0; k<values[0].length; k++) {
      values[j][k] += 1;
    }
  }
  range.setValues(values);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...