Google apps script 变量似乎未定义,但我可以';我找不到
脚本失败,电子邮件无效:未定义(第29行,文件“newCode”) 我已经克服了一些错误,但我仍然坚持这一点。 除了错误消息之外,我还找到了一个调试器选项并运行了它。 这没有多大意义,但这句话似乎与投诉相符。 “电子邮件地址未定义” 我觉得这可能与我在这里所做的事情有关:Google apps script 变量似乎未定义,但我可以';我找不到,google-apps-script,Google Apps Script,脚本失败,电子邮件无效:未定义(第29行,文件“newCode”) 我已经克服了一些错误,但我仍然坚持这一点。 除了错误消息之外,我还找到了一个调试器选项并运行了它。 这没有多大意义,但这句话似乎与投诉相符。 “电子邮件地址未定义” 我觉得这可能与我在这里所做的事情有关: var emailAddress = row[3]; // columnD 我想我在借用的代码中所做的只是更改我想从哪个列中提取信息。在本例中为电子邮件地址。据我所知,Google Sheets中的D列被引用为“3”
var emailAddress = row[3]; // columnD
我想我在借用的代码中所做的只是更改我想从哪个列中提取信息。在本例中为电子邮件地址。据我所知,Google Sheets中的D列被引用为“3”,ColA=0,ColB=1…ColD=3
我不能硬编码的电子邮件地址,因为它会变化一行到下一行。
有人能告诉我这是怎么回事吗
function Initialize() {
var triggers = ScriptApp.getProjectTriggers();
for(var i in triggers) {
ScriptApp.deleteTrigger(triggers[i]);
}
ScriptApp.newTrigger("SndMail()")
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onFormSubmit()
.create();
}
// Write a value to column G for rows where an email sent successfully and sends non-duplicate emails with data from the current spreadsheet.
function SndMail() {
var EMAIL_SENT = 'Sent';
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 75; // Number of rows to process.
// Fetch the range of cells A2:G76
var dataRange = sheet.getRange(startRow, 2, numRows);
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[3]; // columnD
var message = 'Please create a Logistics Case and log the CAS# for: <br/> row[4 + 5]'; // columnE
var mailout = row[6]; // columnG
if (mailout != EMAIL_SENT) { // Prevents sending duplicates
var subject = 'Logistics Claim case request';
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 3).setValue(Sent);
// Make sure the cell is updated right away in case the script is interrupted
SpreadsheetApp.flush();
}
}
}
函数初始化(){
var triggers=ScriptApp.getProjectTriggers();
for(触发器中的var i){
ScriptApp.deleteTrigger(触发器[i]);
}
ScriptApp.newTrigger(“SndMail()”)
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onFormSubmit()
.create();
}
//在G列中为成功发送电子邮件的行写入一个值,并发送包含当前电子表格数据的非重复电子邮件。
函数SndMail(){
var EMAIL_SENT=‘SENT’;
var sheet=SpreadsheetApp.getActiveSheet();
var startRow=2;//要处理的第一行数据
var numRows=75;//要处理的行数。
//获取单元格A2:G76的范围
var dataRange=sheet.getRange(startRow,2,numRows);
//获取范围中每行的值。
var data=dataRange.getValues();
对于(变量i=0;i
应该发生的是,当提交谷歌表单时,表单会被更新,脚本会运行以向目标收件人发送电子邮件(D列中的电子邮件地址),然后将文本“发送”放入G列。然后,G列会过滤后续功能运行,避免重复发送电子邮件。此修改如何 修改点:
- 从
检索值时,只检索列“B”。sheet.getRange(startRow,2,numRows)
- 这样,
就变成了var-emailAddress=row[3]
undefined
- 这样,
如果我误解了你的问题,我道歉。谢谢!没有带我一路回家,但让我离这里足够近,我可以从这里走路…这意味着它帮助我进一步了解并解决了问题!
var dataRange = sheet.getRange(startRow, 2, numRows);
var dataRange = sheet.getRange(startRow, 2, numRows, sheet.getLastColumn());
var dataRange = sheet.getRange(startRow, 2, numRows, 7); // A2:G76 ?