Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 如何在Google电子表格中使用自定义脚本进行条件格式设置?_Google Sheets - Fatal编程技术网

Google sheets 如何在Google电子表格中使用自定义脚本进行条件格式设置?

Google sheets 如何在Google电子表格中使用自定义脚本进行条件格式设置?,google-sheets,Google Sheets,谷歌脚本使用Javascript,我还没有开始学习Javascript,所以我让它非常简单。以下是一个电子表格示例: 左侧的列是固定的术语列表。右侧的列是用户手动输入的术语列表。如果用户将左侧的一个术语输入右侧的一个单元格,则右侧的单元格应变为绿色(不区分大小写)。在这个例子中,我希望B4和B5变成绿色 这是我的剧本: function Script1(singlecell, valuesy) { for(var y = 0; y < valuesy.length; y++) {

谷歌脚本使用Javascript,我还没有开始学习Javascript,所以我让它非常简单。以下是一个电子表格示例:

左侧的列是固定的术语列表。右侧的列是用户手动输入的术语列表。如果用户将左侧的一个术语输入右侧的一个单元格,则右侧的单元格应变为绿色(不区分大小写)。在这个例子中,我希望B4和B5变成绿色

这是我的剧本:

function Script1(singlecell, valuesy) {

  for(var y = 0; y < valuesy.length; y++) {

    var tempx = String(singlecell).toLowerCase().trim();
    var tempy = String(valuesy[y]).toLowerCase().trim();

    if((tempx === tempy)&&(!((tempx.length===0)||(tempy.length===0)))) {

      return true;
    }

  }

  return false;  
}
函数脚本1(单单元格,valuesy){
对于(变量y=0;y
下面是我使用脚本获取某种条件格式的两次尝试:

这两种方法都不管用

我之所以希望这样做,是因为我在预算电子表格中使用了类似的东西

我知道还有更复杂的方法,脚本获取实际的电子表格并更改单元格本身的格式。如果我能帮忙的话,我宁愿不使用那种方法


编辑:“复制”问题根本没有提到自定义脚本。因此,虽然解决方案可能是相同的(使用“匹配”或“countif”),但问题不同。因为我的问题的实际答案是:“你不能在自定义脚本中使用条件格式。”(而且第一个问题很糟糕,没有包含任何代码尝试或电子表格,所以我宁愿我的问题不被删除)

无需创建自定义函数。您只需在条件格式中使用不同的公式即可:

=ISNUMBER(MATCH(B1, $A$2:$A, 0))

这很有趣。关于这一点,我有几个问题。1) $A$2:$A是否引用“整个A列,从A2开始”?如果是这样的话,我可能应该开始使用它而不是我目前的方法(我会使用$A$2:$A$400)。2) 文档没有提到匹配不区分大小写。我只是想验证我是否可以依赖这种行为。@user1790047两者都是,您可以轻松地使用虚拟数据检查数字2。是的,我尝试了虚拟数据。我只是习惯了Java,有点像。。。文档王。随着我未来电子表格技能的提高,无法依赖文档将是一件令人烦恼的事情,但我想这就是事实。我将您的答案标记为“正确答案”(尽管我仍然想知道为什么我的脚本不起作用-脚本速度很慢,并且会使电子表格陷入困境,所以您的答案无论如何都是一个更好的解决方案)。我不敢相信我能做这么复杂的电子表格,但我甚至不知道如何引用整个专栏的一部分。。。lolI还注意到你的原始消息说,如果我不抓取整个电子表格,它将永远不会与脚本一起工作。我确实找到了一个使用脚本的解决方案,但它很糟糕(你必须为脚本指定一整列,然后使用该列中的返回值进行条件格式设置…这不是一个好的解决方案lol)@user1790047我不知道有文档说明了这一点,但是自定义函数不能作为条件格式的自定义公式使用。至少,我没能让它们工作。在我最初的回答中,我没有意识到您试图使用自定义函数。在典型的脚本中,您需要先获取电子表格,然后才能使用类似于
SpreadsheetApp.getActive()
(自定义函数不需要,因为它们直接传递值,不需要用户权限)。@pnuts我的问题与此不完全相同。我添加了一个编辑,因为网站让我这么做。