中。
我正在使用Google表格并使用脚本编辑器。我正在尝试创建一个函数,如果单元格b4 = 2,则细胞B5; b10; b10; c10; c10将隐藏在Google电子表格
伪装细胞
这假定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();
}
}
}
}
}
范围
工作表