3 回答
TA贡献1995条经验 获得超2个赞
解决方案
计算隐藏列的数量
cnt
,然后将该计数用作变量的一部分start
Start
是列索引Steps
是 numColumns我向 cnt 添加 9,因为这是我的起始索引或我想要隐藏的第一列
function Extra() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheets()[0];
const max = sheet.getMaxColumns();
let cnt = 0;
for (i = 1; i <= max; i++) {
if (sheet.isColumnHiddenByUser(i)) {
cnt += 1;
}
}
const steps = 3;
let start = cnt + 9; {
sheet.hideColumns(start, steps);
return;
}
}
感谢此线程中的各位提供的帮助
TA贡献1793条经验 获得超6个赞
这应该做:
function hideEvent() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var lastCol = sheet.getLastColumn();
for (var i = lastCol; i > 0;i--){
if (sheet.isColumnHiddenByUser(i) == true){
sheet.hideColumns(i+1, 3);
break;
}
}
}
TA贡献1784条经验 获得超8个赞
解决方案:
我不确定你的逻辑是否有道理。如果9-11隐藏,则脚本将隐藏12-14。但由于12-14现在被隐藏,脚本将隐藏15-17等等......并且所有其他列将被隐藏为多米诺骨牌。您可以做的就是简单地检查列是否9-11被隐藏。如果它们被隐藏,则隐藏工作表中的其余列:
function hideEvent() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheets()[0];
const Ncols = sheet.getMaxColumns();
let check = true;
for (let i=9; i<12; i++){
if (!sheet.isColumnHiddenByUser(i)){
check = false;
};
if(check){
sheet.hideColumns(12,Ncols-12)
}
}
}
添加回答
举报