【问题标题】:How to run a filter based on formula result in column?如何根据列中的公式结果运行过滤器?
【发布时间】:2018-05-27 17:30:00
【问题描述】:

当我输入“HIDE”这个词时,我有以下效果很好。但是当“HIDE”是公式的结果时,它是无法识别的。你有什么建议?我的目标是在触发列返回公式结果时自动隐藏行。 这是我所拥有的:

function onEdit(f) {
  if (f.range.getColumn() == 30 && f.value == "HIDE") {
    f.range.getSheet().hideRows(f.range.getRow());
  }
}

【问题讨论】:

    标签: google-apps-script rowfilter


    【解决方案1】:

    您应该检查范围的getDisplayValue

    if (f.range.getColumn() == 30 && f.range.getDisplayValue() == "HIDE")
    

    它总是为您提供“显示的”单元格内容的价值。

    【讨论】:

    • 谢谢。我还在某处读到 onEdit 不响应公式结果更改,仅响应用户更改。当然,当用户在单独的列中进行更改时,公式就会触发。
    • 你可以为这种情况设置onChange触发器,它会在公式结果更新时触发。
    • 我现在有以下内容,并设置了 onChange 触发器。仍然没有结果。函数 FilterRows(f) { if (f.range.getColumn() == 30 && f.range.getDisplayValue() == "HIDE") { f.range.getSheet().hideRows(f.range.getRow() ); } }
    • 是的,我错了,公式结果更新时 onChange 不会触发:stackoverflow.com/a/41591675
    • 更新某些单元格中的值后,您的公式值是否更新?然后您可以添加 onEdit 触发器,而不是检查已编辑的范围,而是检查整个第 30 列范围并隐藏所需的行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多