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

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 表格中的运行总计?

    请提供数组公式 当达到最小起订量时 您可以帮助重置运行总计吗 这里最小起订量 15 当运行总计等于或大于 15 时 应重新启动 Date Value Desired 12 2022 6 6 01 2023 5 11 02 2023 4 15
  • 指向特定工作表的超链接

    我想从另一个电子表格中的超链接打开 Google 表格的特定工作表 我的主电子表格中有不同的链接 每个链接都应该有一个指向同一从属电子表格但指向不同工作表的超链接 我知道超链接功能 但它不会转到特定的工作表 您可以使用此自定义脚本 工具 g
  • 一起使用“过滤”和“排序”的 Google 表格

    这是我的第一个问题 我希望一切都好 我是使用谷歌表格的新手 但我正在慢慢进步 我正在尝试构建一个工作表 其中包含工作表 1 中的所有数据 在工作表 2 上 我想过滤工作表 2 中 D 列中标有数字 1 的所有数据 为此 我正在使用 FILT
  • 谷歌表格根据今天的日期隐藏行

    在 Google Sheets 中 当 A 列中的日期等于或早于今天的日期时 我需要一个脚本来自动隐藏工作表 1 中的行 因此 如果今天是 2018 年 8 月 29 日 单元格 A3 中的日期是 2018 年 8 月 28 日 则第 3
  • 根据单元格值隐藏列

    在我的谷歌电子表格 A 中 我使用 TRANSPOSE 和 IMPORTRANGE 公式的组合从日历电子表格 B 导入数据 以便填写事件的工作时间表 因为每个日期都有 3 个事件空位 但这些空位并不总是被填满 所以我收到了很多过时的列 表格
  • Google电子表格脚本创建特定范围内的数据验证

    我正在尝试这个脚本来创建数据验证 但它总是不起作用 function test validation var Spread SpreadsheetApp getActiveSpreadsheet var Sheet Spread getSh
  • .NET 客户端中 Google 表格中的条件格式请求

    我知道如何在 Google Sheets API 中对值和其他格式进行批量电子表格更新请求 但条件格式似乎有所不同 我已正确设置请求 AddConditionalFormatRuleRequest formatRequest new Add
  • 用于创建文件夹的应用程序脚本无法在共享驱动器中运行

    谷歌应用程序脚本新手在这里 我发现这段代码可以帮助使用 Google Sheet 中的输入在我的个人 Google Drive 中创建文件夹 来源 Youtube 上的 Google Sheet Community 但是 当我尝试在共享的
  • 使用应用程序脚本将 MS Word 文件(保存在云端硬盘中)转换为 Google 文档

    我被某些事情困住了 找不到解决办法 有没有办法使用文件 url 或 id 将存储在 Google Drive 中的 MS Word 文件转换为 Google 文档 我目前有一个电子表格 其中包含文件的网址 或者 也可以使用 python 脚
  • 从 Google 电子表格接收实时更新

    我正在尝试设置与 Google 电子表格的双向同步 我可以使用其数据集将更改推送到 Google 电子表格Google 表格 API V4 https developers google com sheets 现在 我希望每当有人实时或近实
  • 如何使用 Google Apps Docs 脚本将光标移动到文档的开头?

    我正在用我的 Google 文档编写 Google Apps 脚本的脚本 并想知道如何将光标移动到文档的开头 我最后想做的只是用一些字符串替换第一行 这个很简单 你可以使用setCursor method 记录在这里 https devel
  • Google Sheets 自定义数字格式、颜色规范

    我有一个自定义的百分比数字格式 这是代码 Green 0 0 Red 0 0 输出预览 Positive 123 456 0 Green Negative 123 456 0 Red 我想要绿色更深一些 我已经尝试过了 Dark Green
  • 当 Google 任务标记为“已完成”时如何触发 Google 脚本

    Google Apps 脚本允许由各种事件触发脚本 看here https developers google com apps script guides triggers 当用户将任务标记为已完成 在 Google 任务中 时 我想更新
  • 插入行 python gdata.spreadsheets.client

    我对专门用于谷歌电子表格的 python gdata API 有点困惑 使用 gdata spreadsheet service 可以很容易地组合一个字典并将其作为新行插入到谷歌电子表格中 如下所示http www mattcutts co
  • 从 Google Apps 脚本运行保存的 bigquery 查询?

    我们经常使用 Google Apps 脚本来运行 BigQuery 查询并将其放入 Google Sheet 中 然而 工作流程很烦人 在 BigQuery 中运行查询 直到正确为止 复制 粘贴到文本编辑器以放入换行斜杠 在应用程序脚本中运
  • 如何使用Google脚本获取当前单元格下单元格的值?

    我找不到看起来像这样的选项 var spreadsheet SpreadsheetApp getActive var sheet spreadsheet getActiveSheet sheet getRange sheet getCurr
  • 如何在谷歌电子表格中获取台湾证券交易所指数

    如何在谷歌电子表格中获取台湾证券交易所指数 该索引确实存在于谷歌金融中https www google com finance q TPE 3ATAIEX https www google com finance q TPE 3ATAIEX
  • 有没有办法导入/导出容器绑定脚本

    我有一个插件 它使用 appscripts gs 以及 html js 和 css 文件 目前我们所做的是我们有一个参考 Google 文档 其中有一个脚本项目包含所有这些源代码 但是除了手动复制和粘贴之外 没有办法在 GIT 中保留源代码
  • 使用 JavaScript 以编程方式编辑 Google 文档

    我想做的是运行一些 JavaScript 代码 将文本输入到 Google 文档中 到目前为止 我所做的是在我的个人网页上创建一个嵌入 Google 文档的 iframe 元素 目前我想做的是使用 Google 源代码中的函数来输入文本 当
  • Google 表格 - ARRAYFORMULA 中的 VLOOKUP

    我正在尝试在 Google 表格中的数组公式内进行 Vlookup 我有两张纸 S1 和 S2 每个列都有 3 个相同的列 A 列 日期 B 列 名称 和 C 列 付款类型 我想根据日期和姓名组合匹配将付款类型从表 2 读取到表 1 这意味

随机推荐