https://docs.google.com/spreadsheets/d/1H0qwHi_TOCY9k3WpTNazt-im7swMOO2h7AIeyYgNYH8/edit?usp=sharing
Я учусь кодировать (первая неделя) и пытаюсь заставить некоторые вещи работать, но я потерпел неудачу, и я чувствую себя глупо, поскольку это должно быть очень просто. Некоторые из вас, а также мой двоюродный брат помогали мне с кодом, который уже есть в этом листе, начинали понимать, что я делаю, но я могу только манипулировать кодом, но не писать его. Я хотел бы видеть, как это должно быть сделано, чтобы я мог учиться на этом. Так что ссылка на открыто редактируемый лист, и я пытаюсь заставить работать простую функцию, не стесняйтесь редактировать лист, если хотите:
Вкладка «Отслеживать электронную почту» - это сводная таблица, которую я использую для одновременной отправки по электронной почте всем просроченным клиентам. Приведенный ниже код прекрасно работает, обновляя мою следующую дату электронной почты, счетчик электронной почты и даже вставляя заметку в метку времени ячейки. Но я также пытаюсь сохранить часть данных на вкладке «Данные» для каждого электронного письма, выходящего за пределы сводной таблицы.
function sendEmails() {
var pmSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("PM");
var emailSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Follow up email");
var startRow = 2;
// First row of data to process
var rows = emailSheet.getLastRow()
var dataRange = emailSheet.getRange(2, 1, rows-1, 7);
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var emailAddress = row[1];
var jobnumber = row[0];
// Second column
var message = 'Hello, we have sent in a supplement ' + row[2] + ' days Ago. ' + row[4] + ' \n\n' + ' -' + row[5];
var subject = row[0];
// First column
MailApp.sendEmail(emailAddress, subject, message);
updatePM(pmSheet, jobnumber);
Note(pmSheet, jobnumber);
}
}
function updatePM(sheet, number){
var value;
var datevalue;
var jobnumber = sheet.getRange("D3:D" + sheet.getLastRow()).getValues();
for (var i = 0; i < jobnumber.length; i++)
if (jobnumber[i][0] == number){
value = sheet.getRange("K" + (i+3)).getValue() + 1
datevalue = sheet.getRange("I" + (i + 3)).getValue() - (-259200000)
sheet.getRange("K" + (i+3)).setValue(value);
sheet.getRange("I" + (i + 3)).setValue(new Date(datevalue)).setNumberFormat("MM/dd/yyyy");
}
}
function Note(sheet, number) {
var timezone;
var newText;
var notevalue;
var existingNote;
var jobnumber = sheet.getRange("D3:D" + sheet.getLastRow()).getValues();
for (var i = 0; i < jobnumber.length; i++)
if (jobnumber[i][0] == number){
existingNote = sheet.getRange("E" + (i+3)).getNote();
timezone = Utilities.formatDate(new Date(), "GMT-4", "M/dd/yy', 'h:mm a");
// Get the current time;
newText = '-updated file on ' + timezone + '\n\n';
notevalue = existingNote != "" ? existingNote + newText : "Notes:\n\n" + newText;
sheet.getRange("E" + (i+3)).setNote(notevalue);
}
};
Таким образом, каждый раз, когда нажимается кнопка [отправить электронное письмо], она должна помещать задание # из сводной таблицы «Follow email» в столбец A на вкладке «Данные» и метку времени в столбец B.