Google apps script Google脚本编辑器getRange问题
谢谢所有能帮忙的人 我正试图在电子表格的B栏中扫描“默认配送”一词,并向自己发送一封包含此人电子邮件的电子邮件,该电子邮件位于F栏的“range.getRow(),6”下,工作正常。我知道这是可行的,因为当我使用“getActiveCell”而不是“sheet.getRange(2,2700,2)”并选择包含“default shipping”的单元格时,我已经成功地向自己发送了一封电子邮件 我尝试了所有不同的方法,但我被卡住了,我不确定是否需要创建循环,但如果我可以避免这种情况,这将是最有益的 这是我复制的代码,但做了一些修改以满足我的需要Google apps script Google脚本编辑器getRange问题,google-apps-script,google-sheets,google-sheets-api,Google Apps Script,Google Sheets,Google Sheets Api,谢谢所有能帮忙的人 我正试图在电子表格的B栏中扫描“默认配送”一词,并向自己发送一封包含此人电子邮件的电子邮件,该电子邮件位于F栏的“range.getRow(),6”下,工作正常。我知道这是可行的,因为当我使用“getActiveCell”而不是“sheet.getRange(2,2700,2)”并选择包含“default shipping”的单元格时,我已经成功地向自己发送了一封电子邮件 我尝试了所有不同的方法,但我被卡住了,我不确定是否需要创建循环,但如果我可以避免这种情况,这将是最有益的
function sendemail() {
var sheetNameToWatch = "Sheet1";
var columnNumberToWatch = 2;
var valueToWatch = "Default shipping";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(2,2,700,2); // this is my problem
var email = sheet.getRange(range.getRow(), 6).getValue();
if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) {
var emailAddress = "my@email.com";
var subject = "Default Shipping Alert";
var email = "Please check the order and contact customer if necesary by clicking this link! www.website.com/search:"+email+"";
MailApp.sendEmail(emailAddress, subject, email);
}
}
最好的解决方案是使用for循环。我对代码进行了一些清理,并做了一些修改。脚本的流程如下所述:
columnB
,它保存发货状态,以及电子邮件
的电子邮件地址。它们的大小(700行)和顺序都相同列B
中的每条记录,将检查装运状态。如果它与valueToWatch
匹配,则会生成一封电子邮件,并发送到emails
数组中与其匹配的地址对于(var i=0;iYou将需要一个循环。您应该查看官方的“最佳实践”应用程序脚本文档以及如何使用2D JavaScript数组。这就像是一种享受!非常感谢!尽管我不想将电子邮件发送到F行的电子邮件地址。这没什么大不了的,因为这很容易更改,因为我只是在
var emailAddress=”中添加了我的个人电子邮件My@email.com"
并在var emailBody
的末尾调出emailAddress
,然后将其调换为emails[i]
。如果我不清楚,那我就糟了。
function sendemail() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var rg=sh.getDataRange();
var vA=rg.getValues();
vA.forEach(function(r,i){
if (r[1]="Default shipping") {
var emailAddress = "my@email.com";
var subject = "Default Shipping Alert";
var msg = "Please check the order and contact customer if necesary by clicking this link! www.website.com/search:"+r[5];
MailApp.sendEmail(emailAddress, subject, msg);
}
});
}