私は2つの列の値をループするスプレッドシートに取り組んでいます。 1つの列(47)は、電子メールで送信されるメッセージを含み、他の列(48)は、メッセージが送信された時点のタイムスタンプを含む。Googleスプレッドシート== '' not working
スクリプトは、メッセージ値が空でないか、タイムスタンプが空であるかどうかをチェックします。そうであれば、これはメッセージが送信されなかったことを意味し、スクリプトはメッセージを送信します。
タイムスタンプ欄に値があればメッセージを送らないようにしたいです。私は以前これを使用していましたが、過去にはうまくいきましたが、今はなぜ動作していないのか分かりません。タイムスタンプはありますが、それでもメッセージは送信されます。私は何が欠けていますか?ここでは、コード(。申し訳ありませんが、それは私が知っている、最高の書かれたコードではありません、それが良いのは理解されるであろうようにする任意のヒント)です:
function listingPending2WeekNoticeEmail() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("VacancyReportMarketing");
// figure out what the last row is
var lastRow = sheet.getLastRow();
// the rows are indexed starting at 1, and the first 3 row
// is the headers, so start with row 4
var startRow = 4;
// grab the '2 week notice sent' column 48 (AV))
var range = sheet.getRange(2,48,lastRow-startRow+1,1);
var numRows = range.getNumRows();
var timestamp_values = range.getValues();
// Now, grab the listing pending 2 week notice column 47 (AU)
range = sheet.getRange(4, 47, lastRow-startRow+1, 1);
numRows = range.getNumRows();
var reminder_info_values = range.getValues();
var warning_count = 0;
var msg = "";
// Loop over the days left values
for (var i = 0; i <= numRows - 1; i++) {
var timestamp = timestamp_values[i][0];
var reminder_info = reminder_info_values[i][0];
// var days_left = days_left_values[i][0];
if(reminder_info != '' && timestamp == '') {
Logger.log(timestamp);
// if reminder not empty but timestamp empty, do something with the data.
var reminder_name = reminder_info_values[i][0];
msg = msg + reminder_name+"\n\n";
var msg2 = "\n"+"Within the 2 weeks prior to unit being estimated ready, Marketing Department should begin advertising the above units. If assets are missing, Marketing should begin scheduling with the property manager a time to visit the property as soon as it is ready. Please begin to compile your schedule to collect missing assets and submit to Marketing Manager for approval. Thank you!"
warning_count++;
}
}
if(warning_count) {
MailApp.sendEmail("[email protected],[email protected]",
"2 WEEK NOTICE - LISTINGS PENDING", msg+msg2);
timestamp2WeekNoticeSent();
}
};
function timestamp2WeekNoticeSent(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("VacancyReportMarketing");
var lastRow = sheet.getLastRow()
for (var i = 1; i <= lastRow; i++){
// get column AU (47), every row to last row
var noticeRange = sheet.getRange([i], 47);
var noticeValues = noticeRange.getValues();
// get column AV (48), every row to last row
var timeRange = sheet.getRange([i], 48);
var timeValues = timeRange.getValues();
if (noticeValues != '' && timeValues == ''){ //
timeRange.setValue(new Date());
}
}
}
電子メールを送信するかどうかを決定する変数は 'warning_count'です。だから、そのループの 'Logger.log(warning_count)'をログに記録して、なぜそれが正になるのかを確認してください。 – FTP