google apps script - sheets - Script de la aplicación Google onEdit?
google apps script class range (1)
la función simple onEdit tiene un conjunto muy limitado de acciones posibles ya que se ejecuta sin la autorización del usuario potencial. Tienes que crear otra función y establecer un disparador específico en esta función. (Disparador instalable)
Vea esta publicación como un ejemplo. Muestra ejemplos de ediciones simples onEdit y instalable (para envío de correos electrónicos) Esto se explica en la documentación aquí .
EDITAR: aquí está tu código funcionando:
function sendAlert() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation()
var viewers = ss.getViewers();
var ct = viewers.length;
var recipients = [];
for(var i=0;i<ct;i++){
recipients.push(viewers[i].getEmail());
};
var subject = ''Update to ''+sheet.getName();
var body = sheet.getName() + '' has been updated. Visit '' + ss.getUrl() + '' to view the changes on cell '' + cell;
MailApp.sendEmail(recipients, subject, body);
};
realmente siento que me falta algo con las secuencias de comandos del objeto Spreadsheet.
Intento enviar correos electrónicos a colaboradores automáticamente en Edite. Envié un correo electrónico exitoso cuando ejecuté explícitamente el script en la prueba, pero el evento onEdit nunca parece dispararse (sin ver los mensajes de registro). El script parece bastante sencillo.
function onEdit(e) {
var sheet = e.source;
var viewers = sheet.getViewers();
var ct = viewers.length;
var recipients = [];
for(var i=0;i<ct;i++){
recipients.push(viewers[i].getEmail());
};
var subject = ''Update to ''+sheet.getName();
var body = sheet.getName() + '' has been updated. Visit '' + sheet.getUrl() + '' to view the changes '' + e.range;
Logger.log(''Running onedit'');
MailApp.sendEmail(recipients, subject, body);
};