0

我在 P 列中有一个复杂的公式,它检查大约 6 个条件并返回 1 或 0。我想在 P 列中隐藏每一行 1。我使用这个脚本:

function onEdit(e){
  var sheet = e.source.getActiveSheet();
  var r = sheet.getActiveRange();
  if (r.getColumnIndex() == 16 && r.getValue() == "1")
    sheet.hideRows(r.getRowIndex(),1);
}

由于未知原因,该脚本不起作用。好像onEdit不能在公式上触发……真的是这样吗?我怎样才能使脚本工作?

4

2 回答 2

2

它不起作用,因为带有公式本身的单元格没有被编辑。这不是活动范围,因此r.getValue() != 1,它等于您刚刚输入的任何内容,并且r.getColumnIndex()永远不应该是 16。

放:

var r=sheet.getActiveRange();
var row=r.getRowIndex();
var p=sheet.getRange("P"+row);

if(p.getValue()==1)
    sheet.hideRows(row,1);

这应该可行,假设您的条件与p您要测试的条件在同一行。

于 2013-04-18T22:38:37.497 回答
1

2013 年 5 月,为电子表格添加了“更改”触发器,并为公式更改提供了一个事件。

于 2013-09-09T20:47:24.153 回答