2

Google デベロッパー ページの「スプレッドシートからメールを送信する」チュートリアルのバリエーションを作成したいと考えています。

電子メールが送信されるたびに各行のセルをマークすることになると、別のシートでそれをマークしたいということを除いて、彼らが私に教えてくれることを正確にやりたい.

したがって、シート「NeedReminders」で、私のスクリプトは、電子メールの送信先メンバーの電子メール アドレスを列 A (変数「emailAddress」になります) で見つけます。そのアドレスに電子メールを送信します。

次に、ここで助けが必要です。スクリプトを「マスター」シートに移動し、emailAddress が列 X にある行を見つけ、同じ行で列 BT の値を設定します。

難しくないはずです。「列XがemailAddressに等しい行を見つけ、BTの値を今日の日付に設定する」部分を行う方法が必ずしもわかりません。

誰が助けることができますか?前もって感謝します!

これまでの私のコードは次のとおりです (私は自分のコードを見せるのがいつも恥ずかしいのです。

function sendDuesReminder() {
  var sheet = SpreadsheetApp.openById('___').getSheetByName('NeedReminders');
  var startRow = 4; // There are a bunch of headers and other nonsense.
  var valueSheet = SpreadsheetApp.openById('___').getSheetByName('Master');

  // Determine how many rows to process
  var rowRange = sheet.getRange(3,4); // On my sheet, cell D3 counts how many members are on the list of people who need a reminder e-mail.
  var rowData = rowRange.getValue();
  // End Determine how many rows to process

  // Send e-mail
  var dataRange = sheet.getRange(startRow, 1, rowData, 2);
  var data = dataRange.getValues();
  for (i in data) {
    var row = data[i];
    // var emailAddress = row[0]; //Column A: E-mail Address
    var name = row[1]; //Column B: First Name
    var subject = "Reminder About Dues for Newcomers & Neighbors";
    MailApp.sendEmail("matt@twodoebs.com", subject, "Hi, " + name + ". It's been some time since we received your online registration for Newcomers & Neighbors. But we don't seem to have received your dues payment, yet. So we wanted to drop you a quick line and remind you about it." + "\n\n" + "If you think we should have received your payment by now or there's some kind of a mistake, please let us know by responding to this message." + "\n\n" + "Otherwise, please send a check for __ made payable to ___ to:" + "\n\n" + "___" + "\n" + "___" + "\n" + "___" + "\n" + "___" + "\n\n" + "Thanks! Please don't hesitate to reach out if you have any questions." + "\n" + "___" + "\n" + "___" + "\n\n" + "Best wishes," + "\n\n" + "Kati" + "\n" + "Membership Director",
                     {name:"___"});

  // End Send E-Mail

  // Set that an a-(Experimental)
  var valueRange = valueSheet.getRange // Here's where I kind of break down . . . I need *something* here that searches the sheet for emailAddress
  setValue(today()) //I'm also not sure that this is the right way to set the value as today's date
  SpreadsheetApp.flush();
    // End Set value
  }
  Browser.msgBox("OK. Reminder messages have been sent. doebtown rocks the house!")
}
4

1 に答える 1

0

それでも問題が解決しない場合は、次の方法を試してください。

var emails = valueSheet.getRange('X:X').getValues();
var targetRange = valueSheet.getRange('BT:BT');
var dates = targetRange.getValues();
for (var j=0; j<emails.length; ++j) {
    if (emails[j][0] == emailAddress) {
        dates[j][0] = new Date();
        break;
    }
}
targetRange.setValues(dates);
于 2012-08-08T17:22:16.190 に答える