Шагая через диапазон - PullRequest
0 голосов
/ 11 марта 2020

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

    var W2X = AllShts[b].getRange("O18").getFormula();
    AllShts[b].getRange('O18').setValue(W2X.replace("W","X"));
    c=c+1

    var rngN18_29 = AllShts[b].getRange("N18:N29");
    for (var a = 0; a < rngN18_29.getNumRows(); a++) {
      var r = rngN18_29.getNumRows();
      var x = rngN18_29[a].getA1Notation();
      var rngN = rngN18_29[a].getFormula();
      rngN18_29[a].setValue(rngN.replace("V","W"));
      c=c+1
    };

Я установил переменную rngN18_29, используя getRange

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

Однако я не могу заставить rngN18_29 [a] посмотреть на нужную ячейку. Я получаю сообщение об ошибке. Не удается прочитать свойство 'getA1Notation' из неопределенного (то же самое с getFormula)

. На данный момент меня больше всего интересует, как бы я прошел через диапазон N18: N29. заменить на весь диапазон сразу (изменяя формулы, а не значения)?

Редактировать:

Следуя совету TheMaster, у меня есть следующее, которое, кажется, делает свое дело.
Большое спасибо, сэр!

var rngN18_29 = AllShts[b].getRange("N18:N29").getFormulas();
for (var a = 0; a < rngN18_29.length; a++) {      
  rngN18_29[a][0] = rngN18_29[a][0].replace("V","W");
}
AllShts[b].getRange("N18:N29").setFormulas(rngN18_29);

1 Ответ

1 голос
/ 12 марта 2020

Шаг за шагом, вместо этого. Измените массив и установите его обратно в один выстрел.

var rngN18_29 = AllShts[b].getRange("N18:N29")
var formulas = rngN18_29.getFormulas();
for (var a = 0; a < formulas.length; a++) {      
   formulas[a][0] =  formulas[a][0].replace("V","W");
}
rngN18_29.setFormulas(formulas);

Лучшие практики

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...