我正在尝试在Google工作表中编写一个脚本,该脚本将根据对多项选择题的响应发送两封不同的电子邮件之一。我可以让我的if / else语句发送一个或另一个电子邮件,但它不会识别多项选择答案的文本并发送正确的电子邮件。
以下是完整的脚本:
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 1;
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, 8)
// 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 title = row[1]; // First column
var startDate = row[3]; // Second column
var endDate = row[4];
var description = row[2];
var location = row[6];
var eventImport = row[5];
var emailAddress = row[7];
var multchoice = row[8];
if (multchoice == "Part Time") {
var subject = "New Hire Part Time Email - " + startDate;
var emailBody = "Congradulations"
var htmlBody = "Congradulations! Part time person"
MailApp.sendEmail (emailAddress, subject, emailBody);
} else {
var subject = "New Hire Appointment - " + startDate;
var emailBody = "Congratulations! We are excited"
var htmlBody = "Congratulation! </i><br/> <br/> We are excited"
MailApp.sendEmail(emailAddress, subject, emailBody);
}
}
}
我认为问题在于:
if (multchoice == "Part Time")
非常感谢任何帮助!我是新手
答案 0 :(得分:0)
您似乎正在分配以&#39; 1&#39;开头的变量。我没有&#39; 0&#39;。开始为它们分配0并向上计数。
如果没有使用示例表,我将无法为您进行大量调试。
但是,Apps Script附带了它自己的调试器。选择您希望调试的功能,然后单击播放按钮旁边的小虫图标。
单击要设置断点的侧栏,代码将停止执行。
一旦遇到该断点,您就可以看到当前范围内的所有变量。因此,您可以看到array
,value
和i
变量。
使用此优势并调试代码以找出问题所在。或者,您可以使用Logger.log()
在代码中的某些位置记录值,然后通过日志回读以尝试确定问题所在。
答案 1 :(得分:0)
问题不在于你的if / else语句。问题在于如何从row[]
数组中分配变量。在getRange()
函数中使用常规数字时,返回的range
是这些单元格的数组。数组始终以索引[0]
开头。将var multchoice = row[8]
更改为var multchoice = row[7]
,您的if / else语句也可以使用(您也希望更改所有其他引用)。