Скрипт листа Google не вводит второй цикл for - PullRequest
0 голосов
/ 27 марта 2020

Я делаю все oop в скрипте листов Google, я пытаюсь найти строку на листе "Inventar", которая имеет то же значение, что и на листе "Клиент Fisa", а затем изменить значение ячейка в этом ряду, но кажется, что она не вводит вторую для. Я новичок в этом, поэтому я не знаю, в чем проблема.

   function adaugabucati1(){
   var sheet = SpreadsheetApp.getActiveSpreadsheet();
   var ss=sheet.getSheetByName('Fisa client');
   var ss2=sheet.getSheetByName('Inventar');
   var data = ss.getRange("g9:l18").getValues();
   var data1=ss2.getDataRange().getValue();
   for(var i=0;i<data.length;i++){
        if(!data[i][0] == ""){
          var cod = ss.getRange(i+9,8).getValue();
          var buc = ss.getRange(i+9,10).getValue();
          for(var y=0;y<data1.length;y++){
              if(data1[y][5] == cod){ 
                 var bucati = data[y][7]-buc;
                 ss2.getRange(y+1,8).setValue(bucati);  
              }
            }  
        }

     }
   }

1 Ответ

2 голосов
/ 27 марта 2020

Проблема в этой строке:
var data1=ss2.getDataRange().getValue();

getValue() возвращает только одно значение - значение верхней левой ячейки в диапазоне.

Когда оператор if, следующий за вторым l oop, оценивает data1[y][5], он возвращает "undefined", а остальная часть второго l oop игнорируется.

Вам нужно изменить строку # 6 на:
var data1=ss2.getDataRange().getValues();
Примечание getValue() -> getValues()

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