Google sheet 获取循环固定数组
Google sheet get fasten array for loop
当range.length > 300 行时,是否可以固定许多行的隐藏?
一旦行被隐藏,我也无法成功将焦点移动到 sheet 的顶部,我只能将焦点放在另一个 sheet。
这是我的代码(法语参数),我不确定是否需要显示我的点差[=20=]。非常感谢。
var LastRow = sheet.getLastRow()-1;
var ToHide = [];
for (var i=1 ; i < LastRow +1 ; i++){
if ( sheet.getRange(i,1).isChecked() == null){ ToHide.push(i); }
}
for (var j=0 ; j<ToHide.length ; j++){ MyActiveSheet.hideRows(ToHide[j+1],1); }
ToHide.forEach(function (d){ FeuilleActive.hideRows(d); }); // also tried .hideRows(d,1)
SpreadsheetApp.getActive().getSheets()[5].getRange(1,1).activate(); //
为了减少循环次数,您可以通过确定数组中连续数字的系列来对其进行分组。您可以使用它来确定要隐藏的索引和行数。 .hideRows()
执行的次数将由数组中的系列数决定。因此,运行时间更短。
示例代码:
function myFunction() {
var a = [1,2,3,4,6,7,8,9,11,13,14];
const result = a.reduce((r, n) => {
const lastSubArray = r[r.length - 1];
if(!lastSubArray || lastSubArray[lastSubArray.length - 1] !== n - 1) {
r.push([]);
}
r[r.length - 1].push(n);
return r;
}, []);
//result output: [[1.0, 2.0, 3.0, 4.0], [6.0, 7.0, 8.0, 9.0], [11.0], [13.0, 14.0]]
result.forEach(e => {
var index = e[0];
var numRows = e.length;
Logger.log("Index: "+ index);
Logger.log("numRows: "+numRows);
// MyActiveSheet.hideRows(index,numRows);
})
}
输出:
参考文献:
当range.length > 300 行时,是否可以固定许多行的隐藏?
一旦行被隐藏,我也无法成功将焦点移动到 sheet 的顶部,我只能将焦点放在另一个 sheet。
这是我的代码(法语参数),我不确定是否需要显示我的点差[=20=]。非常感谢。
var LastRow = sheet.getLastRow()-1;
var ToHide = [];
for (var i=1 ; i < LastRow +1 ; i++){
if ( sheet.getRange(i,1).isChecked() == null){ ToHide.push(i); }
}
for (var j=0 ; j<ToHide.length ; j++){ MyActiveSheet.hideRows(ToHide[j+1],1); }
ToHide.forEach(function (d){ FeuilleActive.hideRows(d); }); // also tried .hideRows(d,1)
SpreadsheetApp.getActive().getSheets()[5].getRange(1,1).activate(); //
为了减少循环次数,您可以通过确定数组中连续数字的系列来对其进行分组。您可以使用它来确定要隐藏的索引和行数。 .hideRows()
执行的次数将由数组中的系列数决定。因此,运行时间更短。
示例代码:
function myFunction() {
var a = [1,2,3,4,6,7,8,9,11,13,14];
const result = a.reduce((r, n) => {
const lastSubArray = r[r.length - 1];
if(!lastSubArray || lastSubArray[lastSubArray.length - 1] !== n - 1) {
r.push([]);
}
r[r.length - 1].push(n);
return r;
}, []);
//result output: [[1.0, 2.0, 3.0, 4.0], [6.0, 7.0, 8.0, 9.0], [11.0], [13.0, 14.0]]
result.forEach(e => {
var index = e[0];
var numRows = e.length;
Logger.log("Index: "+ index);
Logger.log("numRows: "+numRows);
// MyActiveSheet.hideRows(index,numRows);
})
}
输出: