gpt4 book ai didi

google-apps-script - 用于触发单元格值更改的 Google App 脚本

转载 作者:行者123 更新时间:2023-12-04 13:10:58 29 4
gpt4 key购买 nike

我是一个新手,一直在使用一个简单的应用程序脚本来发送带有 onEdit 和 onChange 触发器的电子邮件。但是,我的工作表有十多个工作表,任何工作表中的任何编辑/更改(由我完成或通过计算完成)都会发送一封电子邮件,从而导致意外垃圾邮件!为了避免这种情况,如果我可以使用一些仅基于任何更改发送电子邮件的代码 到特定工作表中特定单元格的值 ,我的问题就解决了。我的外发电子邮件很短,整条消息都在一个单元格 (C2) 中。如果我可以添加一行代码来监视该单元格 C2 中的任何更改,并在发生更改时发送电子邮件,就是这样!我就完了。我的脚本如下:

function sendEmail(){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet1=ss.getSheetByName('Email');
var emailAddress = sheet1.getRange(2,1).getValue();
var subject = sheet1.getRange(2,2).getValue();
var message = sheet1.getRange(2,3).getValue();
MailApp.sendEmail(emailAddress, subject, message);
}

最佳答案

回答:
您可以使用 onEdit() 执行此操作和一个条件。
代码示例:

function onEdit(e) {
const specificSheet = "Email" // for example
const specificCell = "C2" // for example

let sheetCheck = (e.range.getSheet().getName() == specificSheet)
let cellCheck = (e.range.getA1Notation() == specificCell)

if (!(sheetCheck && cellCheck)) {
return
}
else {
sendEmail()
}
}
此函数的概要:
  • 定义要检查的特定单元格的工作表和 A1 表示法
  • 获取刚刚编辑的单元格的工作表和 A1 表示法
  • 如果 Sheet 或 Cell 不是定义的特定单元格,则返回(使用 De Morgan's law )
  • 运行 sendEmail()如果单元格和工作表正确

  • 引用:
  • Event Objects | Apps Script | Google Developers
  • Simple Triggers | Apps Script | Google Developers
  • De Morgan's laws - Wikipedia
  • 关于google-apps-script - 用于触发单元格值更改的 Google App 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65333964/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com