仅当单元格中存在值时才发出警报消息

2024-04-06

我希望仅当单元格中存在值时才会出现警报框,但每当我删除单元格值时,都会出现警报消息提示。这是代码

function sendMailEdit(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var trix = sheet.getSheetByName('Response');
var status = trix.getRange(e.range.rowStart, 1, 1, 5).getValues();
var sh=SpreadsheetApp.getUi();
var response = sh.alert("Do you want to send an email?", sh.ButtonSet.YES_NO);
if (response == sh.Button.YES){
 if (e.range.columnStart == 5 || e.value == "Approved" || e.value == "Rejected" || e.value == "Duplicate"){
const rData = e.source.getActiveSheet().getRange(e.range.rowStart, 1, 1, 5).getValues();
    
    let EmployeeName = rData[0][2];
    let Reviewer = rData[0][4];
    let Status = rData[0][5];
    Logger.log(Status);
var UpdateEmail =
      ('<html>' +
           '<body>' +
            '<head>' +
            '<style>table, th,tr{border: 2px solid black;}</style>' +
            '</head>' +
            '<tr style="background-color:#d3ecdc;"><td width=500 height=auto; colspan=6><br>Hi ' + EmployeeName + ',<br><br> Your suggestion has been ' + Status + ' by ' + Reviewer + '<br> you can check the comments here <br><br>Regards,<br>"Rajanee"<br><br></td></tr>' +
           '</body>' +
           '</html>')
    // Logger.log(UpdateEmail);
    // GmailApp.sendEmail("EmployeeName", "Approved Order", msg)

    MailApp.sendEmail({
     to: EmployeeName,
      subject: 'Idea Status!',
    htmlBody: UpdateEmail,
        name: 'Ideas',
        cc: ccmail
    });
}}}

根据您的情况,进行以下修改如何?

From:

function sendMailEdit(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet();

To:

function sendMailEdit(e) {
  if (e.range.isBlank()) return; // Added
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  • 通过此修改,当单元格为空时,以下脚本if (e.range.isBlank()) return;没有运行。

Added:

关于您的以下回复,

我希望在满足条件时不触发电子邮件,但特定行中没有任何值。当前场景:我在单元格 5 中输入一个值,出现警报提示(是/否),当我选择“是”时,将发送一封电子邮件。当特定行中没有值时,即使我在警报提示上选择“是”,我也想限制发送电子邮件

如果你的实际预期结果是你在评论中的回复,那么下面的修改如何?

修改后的脚本:

function sendMailEdit(e) {
  const sheetName = "Response";
  const { range } = e;
  const sheet = range.getSheet();
  if (sheet.getSheetName() != sheetName || range.columnStart != 5 || range.isBlank()) return;
  const sh = SpreadsheetApp.getUi();
  const response = sh.alert("Do you want to send an email?", sh.ButtonSet.YES_NO);
  if (response != sh.Button.YES || !["Approved", "Rejected", "Duplicate"].includes(range.getValue())) return;

  const rData = e.source.getActiveSheet().getRange(e.range.rowStart, 1, 1, 5).getValues();
  let EmployeeName = rData[0][2];
  let Reviewer = rData[0][4];
  let Status = rData[0][5];
  Logger.log(Status);
  var UpdateEmail =
    ('<html>' +
      '<body>' +
      '<head>' +
      '<style>table, th,tr{border: 2px solid black;}</style>' +
      '</head>' +
      '<tr style="background-color:#d3ecdc;"><td width=500 height=auto; colspan=6><br>Hi ' + EmployeeName + ',<br><br> Your suggestion has been ' + Status + ' by ' + Reviewer + '<br> you can check the comments here <br><br>Regards,<br>"Rajanee"<br><br></td></tr>' +
      '</body>' +
      '</html>')
  MailApp.sendEmail({ to: EmployeeName, subject: 'Idea Status!', htmlBody: UpdateEmail, name: 'Ideas', cc: ccmail });
}
  • 在此修改中,当将值放入“响应”表的“E”列时,将打开一个对话框。单击“确定”按钮时,会检查该值,当该值被选中时"Approved", "Rejected", "Duplicate",发送电子邮件。当该值不是"Approved", "Rejected", "Duplicate",电子邮件未发送。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅当单元格中存在值时才发出警报消息 的相关文章

  • 为什么电子邮件正文给出不同的输出?

    我正在尝试触发来自 Google 应用程序脚本的电子邮件 const body HtmlService createHtmlOutput A b new task b have been added to the Task Manager
  • 列出 Google 云端硬盘上特定演示文稿/文档的所有共享用户

    我们需要一份完整的列表 列出已获得 Google 云端硬盘上特定演示文稿 文档的 共享 查看权限的人员 我们有屏幕截图 但可能还不够 我们如何以编程方式检索这些信息 附加到 a 的属性File对象包括三个与用户相关的项目 Owner 一个单
  • Google 表格 - 开始日期和结束日期列表之间的日期列表

    我想列出开始日期和结束日期列表之间的所有日期 我已经对每一行日期使用了序列公式 但我正在寻找一个单独的公式来工作 无论我有多少行 非常感谢任何帮助 我在单元格 E2 中输入了这个公式 sort query sequence max A2 B
  • 正则表达式 - 使用正则表达式提取电子邮件文档的子字符串

    我正在尝试使用正则表达式提取电子邮件文档的子字符串 我正在在线测试正则表达式 它运行得很好 在线正则表达式测试器 https regex101 com r BbWBPk 1 我有一个功能可以检查 Google Apps 脚本上的正则表达式
  • 根据条件格式化货币

    Google Apps 脚本新手 但有一些 VBA 编码经验 我希望能够根据不同的单元格输入决定单元格的数字格式 eg Col A 客户名称 验证范围 B 栏 货币类型 英镑 美元 欧元 经过验证的列表 Col C 费用 100 用户免费类
  • 无法在 onclick 函数中传递多个参数

    我正在尝试创建一个上传机制 其中我可以使用 HTML 中的文件 ID 将文件上传到 google 驱动器中 我不想将文件夹的 ID 放在上传函数中 因为这是需要的 我试图通过声明另一个参数 即函数 upload e id 来传递函数 upl
  • 使用 Gmail Apps 脚本以 HTML 和普通格式发送电子邮件

    我正在使用 Google Apps 脚本为 Gmail 编写一个自动回复机器人 http script google com http script google com 每次我使用GmailThread s Reply https dev
  • 在应用程序脚本中将 .XLS 转换为 Google 表格的最有效方法是什么?

    我每周都会自动将 XLS 文件下载到 Google 云端硬盘 我想每周自动将最新下载的 XLS 文件转换为 Google 表格格式 因此转到特定的 Google 驱动器文件夹 查找最新或未转换的 XLS 文件 转换为 Google 表格格式
  • 仅生成一张电子表格的 PDF

    我需要一个只用一张电子表格创建 PDF 的脚本 我目前有一个生成 PDF 的脚本 但它处理整个文件 我无法将这些值复制到另一个文件 因为我需要导出的工作表是带有从另一个工作表中提取的数据的图形 你可以帮帮我吗 谢谢 function myF
  • 将 html 转换为 pdf 时防止表格单元格跨页破坏

    使用 Google Apps 脚本 我有一个 html 模板 我填写该模板 然后以 pdf 形式发送 通过传真和 或电子邮件 该模板包括一个带有问题 答案的两列表格 如果行数足够多 表格会在pdf中跨页分页 并且分页符通常发生在单元格的中间
  • 用于以两种方式提取特定值的 Google Sheets 公式

    我正在尝试使用 Google 中的电子表格做一些不同的事情 但我正在使用的公式遇到了一些问题 我希望有人能够指导我找到更好的解决方案或能够纠正我当前遇到的问题 首先 这是我从中提取的表 1 上的数据视图 Example Spreadshee
  • 如何设置多个过滤器?

    我有一个关于将过滤器应用于多个值以使用 Google 脚本隐藏它们的问题 我有一个具有多种状态的项目跟踪器 例如 达到目标 已完成 已取消 已延迟 等 我想编写一个脚本来设置 状态 列的筛选器值 以便标记为 已完成 或 的行 已取消 被隐藏
  • maxifs的Google Sheets数组公式[重复]

    这个问题在这里已经有答案了 大家好 我是一名长期支持者 读者 但这是我第一次在 Stackoverflow 上发帖 所以请耐心等待 我正在使用的工作表示例 https i stack imgur com tFQ2n png if E2 If
  • 对于只触及我的工作表的 Google 表格脚本,收到“此应用程序未经验证”

    我正在编写一个 Google Sheets 脚本 我只想访问与 gs 文件关联的同一电子表格中的数据 似乎我应该有权在自己的电子表格中运行脚本 但是每当我运行一个函数时 我都会得到一个This app isn t verified信息 我该
  • 与 google 脚本一起使用时,币安搜索 API 返回 403

    我正在使用 binance API 来获取 USDT 的价格 该 API 适用于邮递员 但不适用于 google 脚本 function fetchCryptoPricesFromApi const data page 1 rows 10
  • 上传到google脚本中的特定文件夹

    所以我想制作一个表单 将文件 照片 视频上传到 Google Drive 中的特定文件夹 文件 照片 视频 但我不知道如何在 Google Apps 脚本中制作 我尝试了这样的操作 并在控制台中出现错误 无效的参数侦听器 所以这里有一个索引
  • 如何通过 Google Sheets API 进行基本写作?

    在使用 Swift 学习 Google Sheets API 的过程中 我想将单个范围写入电子表格 调查iOS 快速入门指南 https developers google com sheets quickstart ios ver swi
  • Google 表单根据提交的值将文件上传到特定的新文件夹

    我的表单有 2 个字段 假设表单的名称是CV Drops Name 上传文件按钮 因此 默认情况下 当人们上传文件时 它将保存在我的 Google Drive 文件夹下CV Drops 我想要的是根据字段中的输入将文件放置在子文件夹中NAM
  • 如何使用 Google 脚本将数据添加到 Google 表格中的特定行

    在我的 Google 表格中 我将索引放在名为 colorRow 的变量中 我只是想向工作表中的该行添加一些数据 但数据不断进入页面下方的其他行 我究竟做错了什么 var data Some more fields in data arra
  • 如果单元格包含“否”,则隐藏 Google 表格中的行 - 多张表格

    我正在运行 1 个主电子表格 其中有 4 个产品特定电子表格从中提取信息 如果没有提取相关信息 较小的电子表格将在所有单元格中显示 否 我希望隐藏带有 否 的行 我已经把一些东西拼凑在一起了 这样的作品 但我无法让它在所有 4 张纸上都工作

随机推荐