检查单元格是否为空

问题描述 投票:-1回答:2

由于我是Google Apps脚本的新手,因此我很难理解在那里做了什么以及如何做。我想改变单元格的颜色,如果它是空的,其他列中的另外两个单元格也是空的。如果其中一个有价值,那就没关系。

在此屏幕截图中,只需要对第5,6和7行进行着色:

SO54747074 question example

这意味着在运行时使用脚本,检查在给定列(电子邮件/主要电话等或任何给定列,取决于或要求)上缺少值的位置。

google-apps-script cell
2个回答
1
投票

试试这个:

您的问题没有指定哪些列,因此根据图像我假设您需要列C,F和G.

function onEdit(e) {
  var dflt='#ffffff';
  var fill='#ffff00';
  if(e.range.getSheet().getName()!='Sheet69'){return;}//you need to add your sheet name so that this only works on the appropriate sheets
  var ss=e.source;
  var sh=e.range.getSheet();
  var rg=sh.getRange(1,1,sh.getMaxRows(),sh.getMaxColumns());
  var vA=rg.getValues();
  var bA=rg.getBackgrounds();
  for(var i=0;i<vA.length;i++) {
    if(!vA[i][2] && !vA[i][5] && !vA[i][6]){
      for(var j=0;j<bA[i].length;j++) {
        bA[i][j]=fill;
      }        
    }else{
      for(var j=0;j<bA[i].length;j++) {
        bA[i][j]=dflt;
      }     
    }
  }
  rg.setBackgrounds(bA);
}

1
投票

您不应该使用应用程序脚本来获得所需的效果。我创建了一个虚拟测试,看看它是否适合你。它处于“查看”模式,因为......好......互联网。 https://docs.google.com/spreadsheets/d/1ozOITqXNwtvYYmulJV6nrs3MB6SlsRAF8l9a8ImXZkg/edit?usp=sharing

我为要格式化的范围单元格创建了一个自定义公式,用于单元格格式化,而不是整行(对于工作表引擎来说可能工作量太大)。

选择要应用格式的范围,然后从菜单中选择条件格式。对于我的示例,“格式化单元格”设置为“自定义公式为”,值为= AND(ISBLANK($ C2),ISBLANK($ D2),ISBLANK($ E2))

您可以将此公式复制到您希望显示格式的任何其他单元格,从而使整个行的外观格式化。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.