0

хороший день для всехGoogle Таблицы Авто Email Script

У меня есть сценарий здесь, fyi Я не знаю много о написании функций. Я сумел frankenstein некоторые сценарии, которые я нашел, чтобы заставить его работать, вроде как. Он работает с одной функцией, делая один лист, но, как вы увидите, мне нужно, чтобы все 3 листа, и я получаю слишком много ошибок триггеров, когда я дублирую функцию.

У меня есть 4 листа в этом документе, элемент управления (мастер), затем 3 потянув данные из этого (AZ, CA, NH).

У меня тогда есть формула, которая извлекает случайные строки из этих данных. на каждой из 3-х страниц (AZ, CA, NH) я генерирую список случайных циклов инвентаризации.

Я получил электронное письмо, а затем сделал обходное решение, добавив в формулу формулу = today() и if, чтобы заставить ее пересчитывать изменения. и получил скрипт для редактирования книги (замените содержимое ячейки (G1)). прекрасно работает.

В этом проблема. Могу ли я конденсировать это в одну функцию? все одинаково на всех страницах (AZ, CA, NH), одинаковое количество строк и столбцов и одинаковое размещение данных. Вот мой код.

* Похоже, у меня кончилось пробел в коде или что-то в этом роде. Я в основном дублирует это еще 2 раза и изменил название листа к «СА» & «NH» функции и триггеры email_ca() & email_nh(), а также myRecalculate()

//AZ Script 

function email() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var bulk = ss.getSheetByName("AZ"); 
    var lastrow = bulk.getLastRow(); 

    var data1 = bulk.getRange(6, 7, lastrow).getValues(); // part number column 

    var report = "" 
    var email =""; 
    for(var i in data1){ 
    if(data1[i]!="") email += "<tr><td style='padding:5px'>" + data1[i]; 
    } 

    report ="<table><tr><th>Part Number</th></tr>" + email + "</table>"; 

    MailApp.sendEmail(Session.getActiveUser().getEmail(), 
       "Cycle Count", report, {htmlBody: report}); 
} 

ScriptApp.newTrigger("email") 
    .timeBased() 
    .onWeekDay(ScriptApp.WeekDay.THURSDAY) 
    .create(); 

function myRecalculate() { 

// The code below opens a spreadsheet using its ID 
// Note that the spreadsheet is NOT physically opened on the client side. 
// It is opened on the server only (for modification by the script). 
var ss = SpreadsheetApp.openById("13SAt0XQgHQz1JRhXyvwbL6ASfnlLjvFXJQsHfYRM1nE"); 
var sheet = ss.getSheetByName("AZ"); 
var cell = sheet.getRange('G1') 

cell.setValue("Randomizer!!!") 
} 

ScriptApp.newTrigger("myRecalculate") 
    .timeBased() 
    .onWeekDay(ScriptApp.WeekDay.WEDNESDAY) 
    .create(); 

ответ

0

понял.

//AZ Script 

function email() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var az = ss.getSheetByName("AZ"); 
    var lastrow = az.getLastRow(); 

    var data1 = az.getRange(2, 7, lastrow).getValues(); // part number column 

    var ca = ss.getSheetByName("CA"); 
    var lastrow_ca = ca.getLastRow(); 

    var data2 = ca.getRange(2, 7, lastrow_ca).getValues(); // part number column 

    var nh = ss.getSheetByName("NH"); 
    var lastrow_nh = nh.getLastRow(); 

    var data3 = nh.getRange(2, 7, lastrow_nh).getValues(); // part number column 

    var report = "" 
    var email =""; 
    for(var i in data1){ 
    if(data1[i]!="") email += "<tr><td style='padding:5px'>" + data1[i] + "</td><td style='padding:5px'>" + data2[i] + "</td><td style='padding:5px'>" + data3[i] + "</td></tr>"; 
    } 

    report = "<table style='width:100%'><tr bgcolor='#f1f1f1' style='padding:5px'><th>PHX Lotto</th><th>CA Lotto</th><th>NH Lotto</th></tr><tr>" + email + "</tr></table>"; 

    MailApp.sendEmail(Session.getActiveUser().getEmail(), 
       "Cycle Count", report, {htmlBody: report}); 
} 
+0

Теперь мне просто нужно знать, как отправлять электронные письма нескольким людям – user2970972

Смежные вопросы