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