【问题标题】:google sheet script doesn't enter the second for loop谷歌工作表脚本没有进入第二个 for 循环
【发布时间】:2020-03-27 16:25:29
【问题描述】:

我正在 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);  
              }
            }  
        }

     }
   }

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    问题出在这一行:
    var data1=ss2.getDataRange().getValue();

    getValue() 只返回一个值 - 范围内左上角单元格的值。

    当第二个循环后面的if 语句评估data1[y][5] 时,它返回“未定义”并且绕过第二个循环的其余部分。

    您需要将第 6 行更改为:
    var data1=ss2.getDataRange().getValues();
    注意getValue()->getValues()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-12
      • 2020-03-16
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多