Почему мой скрипт Google добавляет 3 строки после каждого выполнения? - PullRequest
0 голосов
/ 09 марта 2020

Я собрал приведенный ниже код, чтобы проверить, если Столбец B <> Столбец A . И если TRUE, тогда вставьте данные столбца A в столбец B .

Это прекрасно работает , за исключением того, что 3 строки добавляются после каждого выполнения! И я просто не могу понять, почему.

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

function RefreshSheets() {

 
  var ss = SpreadsheetApp.openById("1YWjysA9uuGez3grhvMR3_JaAuBp5AsigOmDbxlk7d6c");
  var sh = ss.getSheetByName("Front Sheet");

  var rA = sh.getRange(6, 1, sh.getLastRow() - 0, 1);
  var vA = rA.getValues();

  var rD = sh.getRange(6, 4, sh.getLastRow() - 0, 1);
  var vD = rD.getValues();

  var rB = sh.getRange(6, 2, sh.getLastRow() - 0, 1);
  var vB = rB.getValues();


  for (var i = 0; i < vB.length; i++) {
    if (vB[i][0] != vA) {
      vB[i][0] = vA;
    }
  }
  rB.setValues(vA)

}

1 Ответ

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

Попробуйте следующим образом:

Третий параметр в диапазоне - это число строк, а не номер последней строки. Если вы используете последний номер строки, но не начинаете со строки 1, то вы выполняете итерацию прямо из нижней части ваших данных.

vA и vB - это 2-мерные массивы, поэтому им требуется два индекса для указания одной ячейки. .

function RefreshSheets() {
  var ss = SpreadsheetApp.openById("1YWjysA9uuGez3grhvMR3_JaAuBp5AsigOmDbxlk7d6c");
  var sh = ss.getSheetByName("Front Sheet");
  var rA = sh.getRange(6,1,sh.getLastRow()-5,1);
  var vA = rA.getValues();
  var rD = sh.getRange(6,4,sh.getLastRow()-5,1);
  var vD = rD.getValues();
  var rB = sh.getRange(6,2,sh.getLastRow()-5,1);
  var vB = rB.getValues();
  for (var i=0;i<vB.length;i++) {
    if (vB[i][0] != vA[i][0]) {
      vB[i][0] = vA[i][0];
    }
  }
  rB.setValues(vA)

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