Javascript 如何隐藏选项卡并跨多个工作表保护它们(谷歌工作表)
我正在使用当前功能(触发菜单按钮)隐藏一系列列。我想添加一些脚本来保护这个隐藏区域(这样只有所有者才能编辑) 我的问题是,如何将保护元素添加到此函数,并强制该函数在我的所有选项卡上运行,不包括Javascript 如何隐藏选项卡并跨多个工作表保护它们(谷歌工作表),javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在使用当前功能(触发菜单按钮)隐藏一系列列。我想添加一些脚本来保护这个隐藏区域(这样只有所有者才能编辑) 我的问题是,如何将保护元素添加到此函数,并强制该函数在我的所有选项卡上运行,不包括X、Y、Z等。。。我已经试着让它工作了好几个小时,但似乎无法完全破解它 function hideResults() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); sheet.hi
X、Y、Z
等。。。我已经试着让它工作了好几个小时,但似乎无法完全破解它
function hideResults() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
sheet.hideColumns(3,27); // B-D, three columns starting from 2nd
sheet.hideRows(4,1)
sheet.hideRows(32,2)
}
说明:
以下代码中可能需要修改两件事:
- 选择要从此操作中排除的图纸:
const sheets_to_exclude = ["Sheet2","Sheet4","X","Y"];
- 选择要保护的范围:
const ranges_to_protect = ["C:AC3","C4:AC4","C32:AC33"];
function hideResults() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheets = ss.getSheets();
//add here the sheets you want to exclude
const sheets_to_exclude = ["Sheet2","Sheet4","X","Y"];
// add the ranges you want to protect
const ranges_to_protect = ["C:AC3","C4:AC4","C32:AC33"];
sheets.forEach(sheet=>{
if(!sheets_to_exclude.includes(sheet.getName())){
sheet.hideColumns(3,27);
sheet.hideRows(4,1);
sheet.hideRows(32,2);
let ranges = sheet.getRangeList(ranges_to_protect).getRanges();
ranges.forEach(rng=>{
let protection = rng.protect();
let me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
protection.setDomainEdit(false);
};
});
};
});
}