2017-03-15 4 views
0

背景:私は学区で働いていますが、現在、Googleフォームと一緒にGoogleフォームを使用してスタッフの出欠を追跡しようとしています。私はフォームを理解しましたが、シートを使って何をしようとしているのかは、現時点では私の能力を超えていますが、私は喜んで学びます。2つの異なるセルにあるテキストに基づいてメールを送信するGoogleシート

シートには、要求を「承認」して「署名」する監督者のために、最後に2つのセルがあります。私は、シートを、そのスーパーバイザがシートで応答した後に、その時間を要求した人に電子メールで送信することを希望します。

IF "approved" = "yes" & &「署名」セルにテキストがあり、「シートに記入された」電子メールをリクエスターに送って「あなたの不在要求が次の日付に承認されました: 「承認されていない」場合& &「署名」セルにテキストがある場合は、「あなたの不在要求は次の日付(日付からの日付)で拒否されました。

スプレッドシートにlink(3/20/17更新)があります。

FYI:JavaScriptでちょっとダブリングしましたが、実際には非常にシートではありません。

UPDATE:、

function onEdit() { 
    // moves a row from "Form Responses 1" to "Signed" when the value in column 29 !=="" 
    // After row is moved it is deleted from "Form Responses 1" 

    var sheetNameToWatch = "Form Responses 1"; 

    var columnNumberToWatch = 29; // column A = 1, B = 2, etc. 
    var sheetNameToMoveTheRowTo = "Signed"; 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var range = sheet.getActiveCell(); 


    if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch && range.getValue() !== "") { 

    var targetSheet = ss.getSheetByName("Signed"); 
    var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1); 
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).copyTo(targetRange); 
    sheet.deleteRow(range.getRow()); 
    } 
} 

今、私はその提出承認されたすべての提出者に一日一回メールを送信するために時間駆動トリガを使用したいです。私は次のコードで私の2番目の質問を解決しました「署名済み」のシートにあり、その提出用の電子メールはすでに送信されていません。だから今私が持っている質問は、両方のトリガーを同じシート上で動作させる方法です。

+0

試したコードはありますか? –

答えて

0

これらの承認と日の終わりを毎日確認するために、時間を使用することができます。過去の承認が完了して複数のメールを送信しないようにするために、何らかのタイムスタンプを入れてください。 linkを確認してください。編集メニューのトリガーリソースも表示されます(下側)。もしあなたがこれに問題があるなら私に知らせてください。私はあなたに手を差し上げます。

+0

私は時間の駆動チェックを試してみましょう。可能であれば、もう1つのことは、リクエストをアーカイブするために別のシートにサインオンした「フォーム応答1」からエントリを削除することです。それは数週間の忙しいカップルになるので、私は数日ほど応答することができない場合は謝罪します。助けてくれてありがとう! –

+0

また、アクティブまたは非アクティブの列を追加して、常にアクティブなレコードで作業し、存在しないかのようにインアクティビティを単独のままにしておくこともできます。 – Cooper

関連する問題