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)
}
}
}
添加回答
舉報