如何在 Google 表格中按背景颜色过滤我的行?

How can I filter my rows by background color in Google Sheets?

我正在尝试根据背景颜色过滤 sheet 中的行。

我使用以下代码编写了一个函数,该函数显示在辅助列中选择的行的背景色的十六进制代码,然后按这些值进行过滤。

function getHex(input) {
  return SpreadsheetApp.getActiveSpreadsheet().getRange(input).getBackgrounds();}

但是,我发现这是一个时间点问题。如果我更改一行的背景颜色,辅助列中的十六进制代码不会自动更改。因此,当我过滤它时,会显示错误的行。关于如何前进有什么想法吗?

您可以使用触发器自动 运行 脚本,不幸的是,无法通过更改单元格的颜色来实现此目的,因为单元格不会在颜色更改时触发更改事件,只有在内容确实如此。

寻找 google sheet 触发器, onEdit() 或 onChange().

https://developers.google.com/apps-script/guides/triggers/

唯一可行的方法是设置 onEdit() 或 onChange() 事件,并在更改颜色后在任意位置编辑单个单元格值。

示例步骤:

  • 更改所需的单元格背景颜色或多单元格颜色。

  • 编辑单元格值 - 最好在 empty/unused 单元格
    上添加一些随机数 并删除它。

onChange() 示例:

function onChangeColor(event) 
{
  if (event.changeType == "EDIT")
  {
    //your code.
  }
}