0

この簡単な差し込み印刷チュートリアルを使用して、完了したコミュニティ サービス時間の概要を学生とその保護者に送信する差し込み印刷を作成します。メール アドレスは Google スプレッドシートのドキュメントに記載されています。スクリプトは、空白のセルに到達するまで機能します。次に、「Invalid email: undefined」というエラーが表示され、スクリプト内の send email コマンドの行が参照されます。

空白のセルにダミーのメールを挿入することで、スプレッドシート自体でこれを一時的に解決しましたが、スクリプトに書き込んで空白のセルを無視したいと思います。

完全なコードは上記のリンクにあります。このコードを変更して、シート内の 1 列ではなく 3 列の電子メール アドレスから抽出するようにしました。重要な部分は次のとおりです。

function sendEmails() {


var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getSheets()[0];
  var dataRange = dataSheet.getRange(5, 1, dataSheet.getMaxRows() - 1, 7);

  var templateSheet = ss.getSheets()[1];
  var emailTemplate = templateSheet.getRange("B7").getValue();

  // Create one JavaScript object per row of data.
  objects = getRowsData(dataSheet, dataRange);

  // For every row object, create a personalized email from a template and send
  // it to the appropriate person.
  for (var i = 0; i < objects.length; ++i) {
    // Get a row object
    var rowData = objects[i];

// Generate a personalized email.
// Given a template string, replace markers (for instance ${"First Name"}) with
// the corresponding value in a row object (for instance rowData.firstName).
var emailText = fillInTemplateFromObject(emailTemplate, rowData);
var emailSubject = templateSheet.getRange("B6").getValue();

MailApp.sendEmail(rowData.studentEmail, emailSubject, emailText);
MailApp.sendEmail(rowData.parentaEmail, emailSubject, emailText);
MailApp.sendEmail(rowData.parentbEmail, emailSubject, emailText);
  } 

parentaEmail 列と parentbEmail 列の空白セルをスキップするには、何を追加する必要がありますか?

4

2 に答える 2

0

わかりました、私は今それを働かせました。私を正しい道に導いてくれた rGil に感謝します。最終的に機能したのは次のとおりです。

   if (rowData.parentaEmail != null) {
      MailApp.sendEmail(rowData.parentaEmail, emailSubject, emailText);
   }

そして、同じことをもう一度行いますが、parentbEmail については

于 2014-05-28T01:30:15.447 に答える
0

問題を解決する方法はいくつかありますが、一般的には、「セルが空でない場合は、sendMail 関数を実行する」という条件文が必要です。

if (rowData.parentaEmail != '') {
  MailApp.sendEmail(rowData.parentaEmail, emailSubject, emailText);
}
于 2014-05-25T23:55:02.103 に答える