我正在使用Google表格和脚本编辑器。我正在尝试创建一个函数,如果单元格B4 = 2,则单元格B5; B10和单元格C5; C10将被隐藏在Google电子表格中
答案 0 :(得分:0)
这假设B4中的更改来自用户对B4的编辑。
您可以隐藏行,隐藏列和隐藏工作表,但是目前您无法真正隐藏单元格。
这实际上不会隐藏单元格,但是通过使字体颜色和背景色相同,将使阅读变得困难,如果您希望这样做,还可以保护它们。
function onEdit(e) {
var sh=e.range.getSheet();
if(sh.getName()!='Sheet2'){return;}
if(e.range.columnStart==2 && e.range.rowStart==4) {
e.source.toast('Flag');
var rg1=sh.getRange('B5:B10');
var rg2=sh.getRange('C5:C10');
if(e.value==2) {
rg1.setFontColor('#ffffff');
rg2.setFontColor('#ffffff');
rg1.setBackground('#ffffff');
rg2.setBackground('#ffffff');
}else
{
rg1.setFontColor('#000000');
rg2.setFontColor('#000000');
rg1.setBackground('#ffffff');
rg2.setBackground('#ffffff');
}
}
}
这还将添加和删除保护。这未经测试。
function onEdit(e) {
var sh=e.range.getSheet();
var ss=e.source;
if(sh.getName()!='Sheet2'){return;}
if(e.range.columnStart==2 && e.range.rowStart==4) {
e.source.toast('Flag');
var rg1=sh.getRange('B5:B10');
var rg2=sh.getRange('C5:C10');
if(e.value==2) {
rg1.setFontColor('#ffffff');
rg2.setFontColor('#ffffff');
rg1.setBackground('#ffffff');
rg2.setBackground('#ffffff');
rg1.protect();
rg2.protect();
}else
{
rg1.setFontColor('#000000');
rg2.setFontColor('#000000');
rg1.setBackground('#ffffff');
rg2.setBackground('#ffffff');
var protections=ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i=0;i<protections.length;i++) {
var protection = protections[i];
if (protection.canEdit()) {
protection.remove();
}
}
}
}
}