是否可以在公式上触发onEdit函数

时间:2013-02-15 03:17:26

标签: google-apps-script google-sheets

我在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不能在公式上触发......真的是这样吗?如何使脚本有效?

2 个答案:

答案 0 :(得分: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位于同一行。

答案 1 :(得分:1)

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