英文:
Use changing variable to define range in loop
问题
I would like to extract multiple ranges within a range on a spreadsheet. The number of rows always changing. This is what I'm aiming to do. The start row and the number of rows will always be different.
var sourcesheet = ss.getSheetByName("sheet name");
var nameRowN = starting rows already in an array
var sor = number of rows in each array already calculated and put in an array
var ranges = [];
for (var m = 0; m < sourcesheet.length; m++) {
ranges = sourcesheet.getRange(nameRowN[m],5,sor[m],29).getValues();
}
So ranges should include multiple mini arrays. The for loop goes through m, then m+1 and so on.
Am I on the right track? Is that possible to achieve what I'm looking for this way?
Edit: I can get the range outside of the loop and replace m variable:
ranges = sourcesheet.getRange(nameRowN[1],5,sor[1],29).getValues();
英文:
I would like to extract multiple ranges within a range on a spreadsheet. The number of rows always changing. This is what I'm aiming to do. The start row and the number of rows will always be different.
var sourcesheet = ss.getSheetByName("sheet name");
var nameRowN = starting rows already in an array
var sor = number of rows in each array already calculated and put in an array
var ranges = [];
for (var m = 0; m < sourcesheet.length; m++) {
ranges = sourcesheet.getRange(nameRowN[m],5,sor[m],29).getValues();
}
So ranges should include multiple mini arrays. The for loop goes through m, then m+1 and so on.
Am I on the right track? Is that possible to achieve what I'm looking for this way?
Edit: I can get the range outside of the loop and replace m variable:
ranges = sourcesheet.getRange(nameRowN[1],5,sor[1],29).getValues();
答案1
得分: 1
如果您的目标是迭代所有包含内容的行 - 您可以使用方法getLastRow()。
示例:
var lastRow = sourcesheet.getLastRow();
for (var m = 0; m < lastRow; m++) {
// 执行您想要的操作
}
另一种可能性是与getValues()
和length
一起使用getDataRange()。
示例:
var rangeLength = spreadsheet.getDataRange().getValues().length;
for (var m = 0; m < rangeLength; m++) {
// 执行您想要的操作
}
英文:
If your goal is to iterate through all rows with contents - you can use the method getLastRow().
Sample:
var lastRow=sourcesheet.getLastRow();
for (var m = 0; m < lastRow; m++) {
//do what you want
}
Another possibility would be to use getDataRange() in conjunction with getValues()
and length
.
Sample:
var rangeLength=spreadsheet.getDataRange().getValues().length;
for (var m = 0; m < rangeLength; m++) {
//do what you want
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论