Arrays Google应用程序脚本。循环的设置值不工作

Arrays Google应用程序脚本。循环的设置值不工作,arrays,google-apps-script,google-sheets,Arrays,Google Apps Script,Google Sheets,循环的目标是用一个公式填充5列A、B、C、D和E中797行以上的每个单元格,该公式的单元格引用增量为1 例如,A列第6行之后将有公式“=间接(“'Data Repository'!A3++”)” B列第6行之后将有公式“=间接('datarepository'!B3++”) 但是,当我运行函数时会发生什么情况?它只填充了A列。我已经检查了执行记录,并且在第一列被填充后记录了执行成功。我试过各种各样的变体,但都没有用 以下是我测试的最后一个变体: function indirect(){ va

循环的目标是用一个公式填充5列A、B、C、D和E中797行以上的每个单元格,该公式的单元格引用增量为1

例如,A列第6行之后将有公式“=间接(“'Data Repository'!A3++”)”

B列第6行之后将有公式“=间接('datarepository'!B3++”)

但是,当我运行函数时会发生什么情况?它只填充了A列。我已经检查了执行记录,并且在第一列被填充后记录了执行成功。我试过各种各样的变体,但都没有用

以下是我测试的最后一个变体:

function indirect(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Fleet - Weekly V3");
  var formulaArray = [];
  var columns = ["A","B","C","D","E"];
  var row = 2;
  var text = '=indirect(\"\'Data Repository\'!';
  var headerRow = 6;
  var column;

  for(i = 0; i < 5; i++) {
    column = parseInt(i) + 1;
    formula = text + columns[i];
    for(i = 0; i < 797; i++) {
      row += 1;
      if (formulaArray.length == 797) {
        sheet.getRange(headerRow, column).offset(0, 0, formulaArray.length).setValues(formulaArray);
      } else {
        formulaArray.push([formula + row + '")']);
      }  
      Logger.log(formulaArray.length);
    }
    Logger.log(i)
    formulaArray = [];
  }
}
函数间接(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“车队-每周V3”);
var formulaArray=[];
变量列=[“A”、“B”、“C”、“D”、“E”];
var行=2;
var text='=间接(\“\'datarepository\'!”;
var headerRow=6;
var列;
对于(i=0;i<5;i++){
列=parseInt(i)+1;
公式=文本+列[i];
对于(i=0;i<797;i++){
行+=1;
if(formulaArray.length==797){
sheet.getRange(headerRow,column).offset(0,0,formulaArray.length).setValues(formulaArray);
}否则{
push([formula+row+'”);
}  
Logger.log(formulaArray.length);
}
Logger.log(i)
公式数组=[];
}
}

问题出在循环中。您正在使用'i'变量两次。将嵌套的for循环更改为迭代变量“j”或“i”以外的其他变量。

问题出在循环中。您正在使用'i'变量两次。将嵌套的for循环更改为迭代变量“j”或“i”以外的其他变量。

此处可能会出现错误-您需要创建变量i(变量i=0,而不仅仅是i=0),如果要嵌套循环,则需要增加不同的变量(首先循环使用i,然后使用j嵌套,然后根据需要使用k等嵌套)

for(变量i=0;i<5;i++){
列=parseInt(i)+1;
公式=文本+列[i];
对于(var j=0;j<797;j++){

未经测试,但我相信如果您只是在中替换它,它应该会起作用。

这里是您可能会犯错误的地方-您需要创建变量I(var I=0,而不仅仅是I=0),如果您嵌套循环,则需要增加不同的变量(首先循环使用I,然后使用j嵌套,然后根据需要使用k嵌套)

for(变量i=0;i<5;i++){
列=parseInt(i)+1;
公式=文本+列[i];
对于(var j=0;j<797;j++){
未经测试,但我相信,如果你只是在中替换它,它应该会起作用

 for(var i = 0; i < 5; i++) {
  column = parseInt(i) + 1;
  formula = text + columns[i];
   for(var j = 0; j < 797; j++) {