код JavaScript, который должен отправить электронное письмо на конкретное электронное письмо из списка столбцов (b). Всякий раз, когда существует изменение между Comluns H к M в моих Google Sheets. G9
Что на самом деле происходит: он отправляет электронные письма всем строкам, пока не достигнет ячейки, которая была обновлена, поэтому в моем предыдущем примере эта ошибка отправит электронное письмо B2 на B9, вместо того, чтобы отправлять электронное письмо B9.
, что я должен сделать? Вот код: < /p>
`function checkForRowChanges() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const lastRow = sheet.getLastRow(); const range = sheet.getRange("H2:M" + lastRow); const currentValues = range.getValues(); // Current values in H–M
const props = PropertiesService.getScriptProperties(); const storedValues = JSON.parse(props.getProperty("previousValues") || "[]");
const updatedStoredValues = [];
for (let row = 0; row < currentValues.length; row++) { const currentRow = currentValues[row]; const previousRow = storedValues[row];
let rowChanged = false;
// Compare only if previousRow exists
if (previousRow) {
for (let col = 0; col < currentRow.length; col++) {
if (currentRow[col] !== previousRow[col]) {
rowChanged = true;
break;
}
}
} else {
// If no previous data, treat as unchanged (first run)
rowChanged = false;
}
if (rowChanged) {
const rowNum = row + 2; // Adjust for header
const email = sheet.getRange("B" + rowNum).getValue();
const subject = sheet.getRange("E" + rowNum).getValue();
const body = sheet.getRange("G" + rowNum).getValue();
if (email && subject && body) {
MailApp.sendEmail(email, subject, body);
}
}
// Always update stored values
updatedStoredValues.push(currentRow);
}
// Save updated values props.setProperty("previousValues", JSON.stringify(updatedStoredValues)); }`
Подробнее здесь: https://stackoverflow.com/questions/797 ... gle-sheets