2017-03-15 7 views
0

Googleのスクリプトを使用していて、Googleシートの特定の列が変更されたときに電子メールを送信します。セル内の情報は、手動で入力するか、他のセルの情報に基づく式を使用して完了します。数式がセルの値を変更したときにスクリプトをトリガーする

情報が手動で入力されたときにスクリプトが正常に機能しますが、数式が実行されているときは問題ありません。私はそれを読んで、数式の計算は編集としてカウントされないことに気付きました。どうすればスクリプトを実行させることができますか?

現在、編集時にスプレッドシートからトリガーするように設定されています。

以下は、問題の列/セルをカバーするスクリプトの一部です。

function sendEmail() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getActiveSheet(); 
    var row = sheet.getActiveRange().getRow(); 
    var cellvalue = ss.getActiveCell().getValue().toString(); 

    if(sheet.getActiveRange().getColumn() == 12) 

私はここにすべてをコピーしていないので、スクリプトにはもっと多くのものが含まれています。事前に多くの感謝。

+0

スクリプトは、トリガーのonEditを経由して実行していますか?もしそうなら、どのセルが編集されているかチェックしていますか?そうであれば、手動で変更されたセルをチェックし、数式に値を変更させる必要があります。あなたのポストにコードを含めることができますので、同様に見ることができますか? –

答えて

0

数式が変更されたときに実行できるトリガーはありません。

どのような条件があなたの式が依存され、把握してみてください。

  1. それは別のセルであれば、手動で入力し、からの公式の輸入データの場合、それはonEdit
  2. と変化だトリガするために、これらの細胞を使用外部ソース、ランダムまたは時間関数を使用する場合は、onTime triggerを使用することをお勧めします。
  3. 式は、インポートの範囲に移動して、元の範囲を参照して、1→ステップ2に戻る、その後importrangeを使用している場合...
+0

私が使っている式は= IF(AND(G28 <=999,G28> 0)、 "Approved"、 "")です。 Gの値が1000より大きい場合、誰かが手作業で列Lにコメントを入力します。これを実行すると、スクリプトは実行できますが、式がセルを完了していない場合は明らかです。 –

+0

あなたはそうです、G28を変更したときにだけトリガーを走らせることができます。数式はトリガーに影響しません。それは私の答えでした。 –

関連する問題