Когда используется общая электронная таблица, я могу понять ниже.
- Вы выбираете «A2: G6» и нажимаете кнопку «ОТПРАВИТЬ».
- Когда функция
send()
выполняется, вы хотите отправить электронное письмо со значениями, извлеченными из каждой строки. - После того, как электронные письма были отправлены, вы хотите поместить значение «sent» в столбец «H».
Если мое понимание верно, как насчет этой модификации?
Точки модификации:
- Я думаю, что сценарий выше
GmailApp.sendEmail()
в порядке. - Чтобы поместить значение «sent» в столбец «H», используется
range
, извлеченное с помощью sheet.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», электронные письма со значениями, полученными из каждой строки, отправляются, а «sent» помещается в «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
}