0

私は Gforms を使用しており、送信された最後のフォームの "J" 列に特定の値 (この場合は "Roberto") がある場合、"A Friend" にメールを送信する必要があります。これは私のスクリプトです。しかし、機能していないようです。その値がフォームで送信されたときにメールが届きません。フォームが送信されたときにスクリプトを実行するようにトリガーを設定しました。

function myNotification() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ranchE = e.range.getRow();
  var Kjota = "J";
  var rangex = Kjota + ranchE;
  var value = ss.getSheetByName("Respuestas de formulario").getRange(rangex).getValue();
  var email = "heregoes@myemail.com";
  if( value == "Roberto" ) {
      MailApp.sendEmail(email, "Test", "Yes is Roberto");
  }
}
4

1 に答える 1

0

関数に送信されるイベント情報にアクセスするには、パラメーターとして含める必要がありeます。トリガー関数に渡される情報については、「イベントについて」を参照してください。

たとえばe.values、関数をトリガーしたフォームによって送信された値の配列です。スプレッドシートを読む必要はありません。情報は無料で渡されます。

配列なので、e.values番号は 0 から始まります。したがって、列 J にアクセスするには、要素 9 が必要です (J はスプレッドシートの 10 列目です)。

文字から列番号を計算したい場合は、次のようにすることができます。

var Kjota = "J";
var colIndex = Kjota.charCodeAt(0) - 'A'.charCodeAt(0);  // colIndex = 9

もう 1 つ - それがスクリプトであり、電子メールを自分に送信したい場合は、Session サービスを使用して簡単に独自の電子メールを取得できます。これにより、スクリプトの共有も容易になります。

必要なものは次のとおりです。

function myNotification(e) {
  if( e.values[9] == "Roberto" ) {
      var email = Session.getUser().getEmail();
      MailApp.sendEmail(email, "Test", "Yes is Roberto");
  }
}
于 2013-08-28T02:10:16.467 に答える