当列中的值更改并通过IF测试时,从Google Spreadsheets发送电子邮件

我想创建一个Google脚本,以便在发生某件事时向我发送电子邮件。我知道如何创建它,但是我无法弄清脚本中所需的代码。

  1. 触发器是两件事的组合:BU列中的单元格更改其值,并且BV列中相应行的值为“ nu”。
  2. 该电子邮件应包含以下文本: “警告-[[BW列中的相应行]已写入[BU列中作为触发器=的单元格的内容]。”

我试图寻找答案,但似乎无法破解。请帮忙。

谢谢

这是我到目前为止尝试过的代码:

function sendEmailAlert() {

var ss = Spreadsheetapp.getactiveSpreadsheet();
var data = ss.getactiveSheet().getactiveCell().geta1Notation();
var sheetname = ss.getactiveSheet().getName();
var user = Session.getactiveUser().getEmail();
var Toemail = 'myemail@gmail.com';
var subject = 'Raspuns gresit Belbin';
var body = 'Cineva a raspuns gresit la testul Belbin - ' + ss.getUrl();

if(data.indexOf('BU:BU')!=-1.23456789) {

MailApp.sendEmail(Toemail,subject,body);
 }

};    
phs852290039 回答:当列中的值更改并通过IF测试时,从Google Spreadsheets发送电子邮件

如果您希望有一个在单元格每次更改其值时都运行的函数,则需要使用onEdit()函数。

但是,您将无法发送电子邮件,如restrictions所说:

  

他们无法访问需要授权的服务。例如,一个   简单触发器无法发送电子邮件,因为Gmail服务需要   授权,但简单的触发器可以将短语翻译为   语言服务,这是匿名的。

有关事件对象的更多信息,可以检查this

此外,此代码可以帮助您实现目标,但要考虑到上述限制。

function onEdit(e){
  var sheet = SpreadsheetApp.getActiveSheet();

  var range = e.range;
  var columnEvent = range.getColumn();
  var rowEvent = range.getRow();
  var bvColumn = // bv column number
  var buColumn = // bu column number

  var cellCondition = sheet.getRange(rowEvent,bvColumn,1,1).getValue().toLowerCase();

  if( columnEvent === buColumn && cellCondition === "nu"){
    // Do something here
  } 
}
本文链接:https://www.f2er.com/3125083.html

大家都在问