PolarBearGG
@PolarBearGG
I know that I know nothing

Как исправить баг в коде?

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

Проблема в том, что перевернутый столбец постоянно записывает предыдущие значения но в таблице все данные верные.
Как с этим бороться?

код
function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet2 = ss.getSheetByName("main");
  var sheet1 = ss.getSheetByName("ga");
  var lastColumn = sheet2.getLastColumn();
  var range1 = sheet2.getRange(1, lastColumn, 100).getValues();
  var range2 = sheet2.getRange(1, lastColumn-2, 100).getValues();
  var vv1 = sheet1.getRange(3, 10);
  var arr = range1, arr2 = range2, arr3 = [];
 
for (i=0; i < arr.length; i++) {
  arr3.push((arr[i]/arr2[i])-100);
  }

sheet1.getRange(1, 10, 1, 100).setValues([arr3]);
//тут проблема
sheet1.getRange("J3:J").copyTo(sheet2.getRange(1,lastColumn+1), {contentsOnly:true});  
}
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
Точно не уверен, но попробуйте свести алгоритм к таким шагам:
1. Получение данных.
2. Их обработка
3. Отправка результатов в таблицу.

То есть на третьем шаге не должно быть повторного получения данных. У вас copyTo сразу после setValues. Возможно, всё это дело как-то кешируется, так что getRange всегда берет изначальные данные.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы