首页 > 解决方案 > 数组未正确写入谷歌表

问题描述

我正在运行一些循环以生成一个数组,当我在记录器中查看数组时,它似乎是正确的,但是当我尝试将数组写入谷歌表本身时,它只写入数组每一行的第一个值。

function testMA(){
    var optionMin = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("N1").getValue();
    var optionMax = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("N2").getValue();
    var MA1Min = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("J1").getValue();
    var MA1Max = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("J2").getValue();
    var MA2Min = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("L1").getValue();
    var MA2Max = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("L2").getValue();
    var outputArray = [];

    for (let optionL = optionMin; optionL<=optionMax; optionL++){
      SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("N5").setValue(optionL);

      for (let MA1 = MA1Min; MA1<=MA1Max; MA1++){
        SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("I5").setValue(MA1);

        for (let MA2 = MA2Min; MA2<=MA2Max;MA2++){
          SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("J5").setValue(MA2);
          var output = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("Q7:V7").getValues();
          outputArray.push(output);
          Logger.log(outputArray);          

          SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(9,17,outputArray.length,outputArray[0].length).setValues(outputArray);       
          

        }
      }
    }

记录器正确地将值显示为: 记录器值

然而,工作表中的输出是:工作 表值

因此每次只代表第一个值。我该如何纠正这个问题?

标签: arraysloops

解决方案


推荐阅读