google-apps-script - 无法在单元格上设置值
问题描述
我可以使用 Google 电子表格一次发送多封电子邮件。
现在,我正在尝试使用已发送电子邮件的信息设置一个单元格。
function enviar() {
var app = SpreadsheetApp
var sheet = app.getActiveSheet()
var range = sheet.getActiveRange()
var contact = range.getValues()
for (var i = 0; i < contact.length; i++) {
var email = contact[i]
GmailApp.sendEmail(email[3], email[5], email[6])
email[7].setValue("enviado")
email[7].setBackground("green")
email[7].setFontColor("white")
}
}
问题出在以下三行:
email[7].setValue("enviado")
email[7].setBackground("green")
email[7].setFontColor("white")
我找不到其他方法来获得范围:
SpreadsheetApp.getActiveSheet().getRange("H2")
另一个想法是:
range[0].getRange()[7].setValue("enviado")
他们都没有工作。
解决方案
使用共享电子表格时,我可以理解以下内容。
- 您选择“A2:G6”并单击“发送”按钮。
- 运行该函数
send()
时,您希望使用从每一行检索到的值发送电子邮件。 - 发送电子邮件后,您希望将“已发送”的值放入“H”列。
如果我的理解是正确的,那么这个修改呢?
修改点:
- 我认为上面的脚本
GmailApp.sendEmail()
很好。 - 为了将“sent”的值放到“H”列中,它使用
range
了retrieves bysheet.getActiveRange()
。
修改后的脚本:
function send() {
var app = SpreadsheetApp
var sheet = app.getActiveSheet()
var range = sheet.getActiveRange()
var contact = range.getValues()
for (var i = 0; i < contact.length; i++) {
var email = contact[i]
GmailApp.sendEmail(email[3], email[5], email[6]);
}
range.offset(0, 7, range.getNumRows(), 1).setValue("sent"); // Added
}
offset(0, 7, range.getNumRows(), 1)
表示“H”列的范围。- 选择“A2:G6”时,变为“H2:H2”。对于此范围,放置“已发送”。
- 在这种情况下,例如,如果选择“A2:F6”,则范围变为“G2:G6”。
参考:
添加:
如果您想通过仅选择 1 列来发送电子邮件并放置状态,那么这个脚本怎么样?在此脚本中,例如,选择“A2:A3”或“C2:C3”,发送具有从每行检索到的值的电子邮件,并将“已发送”放入“H2:H3”。
function send() {
var app = SpreadsheetApp
var sheet = app.getActiveSheet()
var range = sheet.getActiveRange()
var rng = sheet.getRange(range.getRow(), 1, range.getNumRows(), 7); // Added
var contact = rng.getValues(); // Modified
for (var i = 0; i < contact.length; i++) {
var email = contact[i]
GmailApp.sendEmail(email[3], email[5], email[6]);
}
rng.offset(0, 7, range.getNumRows(), 1).setValue("sent"); // Added
}
推荐阅读
- mongodb - 我可以以任何方式更改运行时 mongo 文档名称
- kubernetes - Openshift 3.9 如何将插件添加到 fluentD
- javascript - 带条件的事件发射器
- angular - Why queryParams are empty
- visual-studio - Windows SDK 版本 10.0.15063.0 和 10.0.17134.0 之间 tracewpp 的行为变化
- vba - vba 命令检查 MS Project 计划是否在服务器中签出
- excel - 从 Excel 中的多个工作表中提取某些位置单元格值以及工作表名称
- android - 项目点击后Recyclerview停留在位置
- arrays - 不能在 foreach 循环中使用 Get-ADGroup
- angular - TypeError:child.send 不是函数