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 に答える