Google电子表格脚本编辑器代码隐藏单元格



我正在使用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();
        }
      }
    }
  }
}

范围

工作表

最新更新