从第 9 列开始,我想隐藏接下来的 3 列,我已使用以下脚本成功完成了这些列,该脚本将隐藏第 9,10 和 11 列(I、J 和 K)
function hideEvent() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
sheet.hideColumns(9, 3);
}
但我想做的是隐藏接下来的 3 列,如果第 9-11 列已经隐藏,如果第 12、13、14 列被隐藏,则隐藏接下来的 3 列,依此类推。
我发现您可以使用获取列的隐藏状态,isColumnHiddenByUser(columnPosition)但我不确定如何使用该输出来循环和迭代。
欢迎任何想法。
提前致谢
更新
所以这就是我要感谢@Marios 的地方。我似乎无法理解的一个小问题是我如何start每次重新分配为+3,这样当这个函数含义start将引用第15、18、21、24列等时。
function Event() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheets()[0];
const steps = 3;
let check = true;
let start = 12;
let Ncols = start + 3 ;
while (start<Ncols){
for(let i=start - steps ; i<start ; i++){
if (!sheet.isColumnHiddenByUser(i)){
check = false;
};
};
if(check){
sheet.hideColumns(start, steps);
start = start + 3;
};
Logger.log(start); //Produces 15
return start;
};
}
我的另一个解决方案是计算隐藏列的数量,我认为这可能更可靠。因为隐藏列 + 8 将是start
拉风的咖菲猫
摇曳的蔷薇
青春有我
相关分类